½Å ±¾ Ìá ¹© ×÷ Õß Ò» ¸ö À© Õ¹ HTML ÎÄ µµ »î Ô¾ ºÍ ½» »¥ µÄ ·½ ·¨. Àý Èç:
<!ELEMENT SCRIPT - - CDATA -- script statements --> <!ATTLIST SCRIPT type CDATA #IMPLIED -- Internet content type for script language -- language CDATA #IMPLIED -- predefined script language name -- src %URL #IMPLIED -- URL for an external script -- >¿ª ʼ ±ê ¼Ç: Ðè Òª, ½á Êø ±ê ¼Ç: Ðè Òª
½Å ±¾ ¿É ÒÔ ÔÚ SCRIPT Ôª ËØ ÖÐ »ò ´¦ ²¿ ÎÄ ¼þ ÖÐ ±» ¶¨ Òå. Èç ¹û src ÌØ ÐÔ Ã» ÓÐ ±» Éè ¶¨, Óà »§ ´ú Àí Æ÷ ±Ø Ðë °Ñ Ôª ËØ ÄÚ ÈÝ ×÷ Ϊ ½Å ±¾ À´ ½â Òë. Èç ¹û src ÓÐ Ò» ¸ö URL Öµ, Óà »§ ´ú Àí Æ÷ ±Ø Ðë ºö ÂÔ Ôª ËØ ÄÚ ²¿ ²¢ ÇÒ Í¨ ¹ý URL È¡ µÃ ½Å ±¾.
½Å ±¾ ±» ×÷ Ϊ ±Ø Ðë ±» Óà »§ ´ú Àí Æ÷ Öª µÀ µÄ ½Å ±¾ Òý Çæ À´ ¿¼ ÂÇ.
ÔÚ SCRIPT Ôª ËØ ÖÐ ¼´ ²» °ü º¬ ȱ Ê¡ ½Å ±¾ Óï ÑÔ Éù Ã÷ Ò² ²» °ü º¬ ±¾ µØ Éù Ã÷ µÄ ÎÄ µµ ÊÇ ²» Õý È· µÄ. Óà »§ ´ú Àí Æ÷ ¿É ÄÜ ÈÔ ¾É ½â Òë ²¢ ²» Ðè Òª µÄ ½Å ±¾.
<META http-equiv="Content-Script-Type" content="type">Õâ Àï µÄ "type" ÊÇ Ò» ¸ö Óà À´ Ãü Ãû ½Å ±¾ Óï ÑÔ µÄ »¥ Áª Íø ý Ìå ¸ñ ʽ (Internet Media Type, ²Î ¼û [MIMETYPES]). Õâ Щ Öµ µÄ Àý ×Ó ÊÇ "text/tcl", "text/javascript", "text/vbscript". ²Î ¼û [MIMETYPES] À´ »ñ µÃ Íê Õû µÄ ºÏ ·¨ ½Å ±¾ Óï ÑÔ ÁÐ ±í.
Èç ¹û û ÓÐ META Éù Ã÷, ȱ Ê¡ Öµ ¿É ͨ HTTP Òý µ¼ Í· µÄ "Content-Script-Type" À´ Éè ¶¨.
Content-Script-Type: type
µ± Êý ¸ö HTTP Òý µ¼ Í· ºÍ
ͨ ¹ý type ÌØ ÐÔ ÔÚ Ã¿ ¸ö SCRIPT
Ôª ËØ ÖÐ Ö¸ ¶¨ ½Å ±¾ Óï ÑÔ Ò² ÊÇ ¿É ÄÜ µÄ. Èç ¹û ȱ É٠ȱ Ê¡ ½Å ±¾ Óï ÑÔ
µÄ Ö¸ ¶¨, Õâ ¸ö ÌØ ÐÔ ±Ø Ðë ÔÚ Ã¿ ¸ö SCRIPT
Ôª ËØ ÖÐ Éè ÖÃ. µ± ȱ Ê¡ µÄ ½Å ±¾ Óï ÑÔ ±» Ö¸ ¶¨ ʱ, type
ÌØ ÐÔ ÄÜ ¹» ³¬ Ô½ Ëü.
<HTML>
<HEAD>
<META http-equiv="Content-Script-Type" content="text/tcl">
<SCRIPT type="text/vbscript" src="http://someplace.com/progs/vbcalc">
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
...some JavaScript...
</SCRIPT>
</BODY>
</HTML>
È» ¶ø, ½Å ±¾ Ó¦ µ± ¸ù ¾Ý Æä ·Ö Åä µÄ Ãû ³Æ Ö¸ Ïò Ôª ËØ. ½Å ±¾ Òý Çæ Ó¦ µ± ÔÚ ±ê ʶ Ò» ¸ö Ôª ËØ ʱ ×ñ ÊØ Ï ÁÐ µÄ ÓÅ ÏÈ ·¨ Ôò: Èç ¹û Á½ ¸ö ¾ù ±» Éè Öà name ÌØ ÐÔ ±È SCRIPT Ôª ËØ µÄ ÄÚ ÈÝ ÊÇ ½Å ±¾, Õý Òò Èç ´Ë ²» Ó¦ µ± ±» Óà »§ ´ú Àí Æ÷ ×÷ Ϊ HTML ±ê ×¢ À´ ¶Ô ÆÀ ¼Û. Óà »§ ´ú Àí Æ÷ ±Ø Ðë °Ñ Ëü µ± ×÷ ´« ËÍ ¸ø ½Å ±¾ Òý Çæ µÄ Êý ¾Ý.
HTML ÆÊ Îö Æ÷ ±Ø Ðë ¸ù ¾Ý ¿ª ʼ ±ê ¼Ç ºÍ ½á Êø ±ê ¼Ç Ò» ¿ª ʼ ʱ µÄ ºó ¸ú Ãû ³Æ ×Ö ·û ([a-zA-Z]) µÄ ETAGO ("</") ¶¨ ½ç ·û ¾Í ÄÜ ¹» ÈÏ ³ö ½Å ±¾ Êý ¾Ý. ½Å ±¾ Êý ¾Ý ²¢ ·Ç ±Ø Ðë Òª Óà </SCRIPT> ½á Êø ±ê ¼Ç À´ ÖÕ Ö¹, µ« Ëü ÖÕ Ö¹ ÓÚ ÈÎ ºÎ ºó ¸ú Ãû ³Æ ×Ö ·û µÄ "</" .
Òò ´Ë, ÈÎ ºÎ HTML ±ê ×¢ ±» ËÍ µ½ ½Å ±¾ Òý Çæ ʱ (ÎÞ ÂÛ ºÎ ʱ Ö» Òª ÊÇ
Ï£ Íû ±ê ×¢ ʱ) ±Ø Ðè "»» Âë(escape)" ÒÔ ´Ë ²» ʹ HTML ÆÊ Îö Æ÷ ¸Ð µ½ »ì
ÂÒ. ÿ ÖÖ ½Å ±¾ Óï ÑÔ µÄ Éè ¼Æ Õß Ó¦ µ± ÍÆ ¼ö Óï ÑÔ ÌØ ÐÔ Ö§ ³Ö À´ ½â ¾ö
Õâ ¸ö ÎÊ Ìâ.
ÏÂ Ãæ µÄ ´ú Âë ÊÇ ·Ç ·¨ µÄ, Òò Ϊ "</EM>" ³ö ÏÖ ÔÚ SCRIPT Ôª ËØ Àï Ãæ:
<SCRIPT type="text/javascript">
document.write ("<EM>This won't work</EM>")
</SCRIPT>
Ò» ¸ö Ò» Ö ÆÊ Îö ÐÔ ±Ø ¶¨ °Ñ "</EM>" Êý ¾Ý µ± ×÷ ½Å ±¾ Êý ¾Ý µÄ ½á
Êø, Õâ Ã÷ ÏÔ ²» ÊÇ ×÷ Õß µÄ Òâ ͼ.
ÔÚ JavaScript ÖÐ, Õâ ¸ö ´ú Âë ¿É ÒÔ Í¨ ¹ý È· ±£ ²» Èà ETAGO ¶¨ ½ç ·û ½ô Ìù ×Å SGML Ãû ³Æ ¿ª ʼ ×Ö ·û Ö® ǰ ³ö ÏÖ À´ ±í ´ï:
<SCRIPT type="text/javascript">
document.write ("<EM>This will work<\/EM>")
</SCRIPT>
ÔÚ Tcl ÖÐ, ¿É ÒÔ Èç Ï Íê ³É:
<SCRIPT type="text/tcl"> document write "<EM>This will work<\/EM>" </SCRIPT>ÔÚ VBScript, Õâ ¸ö ÎÊ Ìâ ¿É ÒÔ Í¨ ¹ý Chr() º¯ Êý À´ ±Ü Ãâ:
"<EM>This will work<\" & Chr(47) + "EM>"
¿Ø ¼þ Ôª ËØ Èç INPUT, SELECT, BUTTON, TEXTAREA ºÍ LABEL ¾ù Ïì Ó¦ ÓÚ Ò» ¶¨ µÄ ÄÚ ²¿ Ê ¼þ. µ± Õâ Щ Ôª ËØ û ÓÐ ³ö ÏÖ ÔÚ Ò» ¸ö ±í µ¥ ʱ, Ëü ÃÇ ¿É ÒÔ Óà À´ Ìá ¸ß ÎÄ µµ µÄ ͼ Ïñ Óà »§ ½Ó ¿Ú.
Àý Èç, Éè ¼Æ Õß ¿É ÄÜ Ï£ Íû ÔÚ Ëû ÃÇ µÄ ÎÄ µµ ÖÐ °ü º¬ Ò» ¸ö °´ Å¥ ²¢ ÇÒ °´ ¶¯ ºó ²» Ìá ½» ±í µ¥ ¶ø ÊÇ µ± Ëü ÃÇ ±» ¼¤ »î ʱ ¼Ì Ðø Óë ½Ú µã ͨ Ѷ.
ÏÂ Ãæ µÄ Àý ³Ì Õ¹ ʾ ÁË Ò» Щ ¿É ÄÜ µÄ ¿Ø ¼þ ºÍ »ù ÓÚ ÄÚ ²¿ Ê ¼þ µÄ Óà »§ ½Ó ¿Ú ÐРΪ.
<INPUT NAME="userName" onBlur="validUserName(this.value)">Õâ Àï ÊÇ Áí Ò» ¸ö JavaScript Àý ³Ì:
<INPUT NAME="num"
onChange="if (!checkNum(this.value, 1, 10))
{this.focus();this.select();} else {thanks()}"
VALUE="0">
<INPUT name="edit1" size="50"> <SCRIPT type="text/vbscript"> Sub edit1_changed() If edit1.value = "abc" Then button1.enabled = True Else button1.enabled = False End If End Sub </SCRIPT>Õâ ÊÇ Ê¹ Óà Tcl µÄ ͬ Ò» ¸ö Àý ³Ì:
<INPUT name="edit1" size="50">
<SCRIPT type="text/tcl">
proc edit1_changed {} {
if {[edit value] == abc} {
button1 enable 1
} else {
button1 enable 0
}
}
edit1 onChange edit1_changed
</SCRIPT>
<BUTTON type="button" name="mybutton" value="10">
<SCRIPT type="text/javascript">
function my_onclick() {
. . .
}
document.form.mybutton.onclick = my_onclick
</SCRIPT>
</BUTTON>
Õâ Àï ÊÇ Ò» ¸ö ¸ü ÓРȤ µÄ ÊÓ ´° ´¦ Àí:
<SCRIPT type="text/javascript">
function my_onload() {
. . .
}
var win = window.open("some/other/URL")
if (win) win.onload = my_onload
</SCRIPT>
ÔÚ Tcl ÖРΪ :
<SCRIPT type="text/tcl">
proc my_onload {} {
. . .
}
set win [window open "some/other/URL"]
if {$win != ""} {
$win onload my_onload
}
</SCRIPT>
ͨ ¹ý ¸ø ³ö Õâ Щ Óï ·¨ ÏÞ ¶¨, ¶¨ ½ç ·û ('), ("), "&" ºÍ "&#" ÎÞ ·¨ Ö± ½Ó µØ ³ö ÏÖ ÓÚ ÌØ ÐÔ Öµ ÖÐ. Ϊ ÁË ½â ¾ö Õâ ¸ö ÎÊ Ìâ, ÎÒ ÃÇ ½¨ Òé ½Å ±¾ Ê ¼þ µÄ ´¦ Àí ÌØ ÐÔ Ê¼ ÖÕ Ê¹ Óà (") ¶¨ ½ç ·û ¶ø ³ö ÏÖ ÔÚ Ê ¼þ ´¦ Àí ÌØ ÐÔ ÖÐ µÄ ¶¨ ½ç Èç Ï ±í ʾ:
'"' Ó¦ µ± д ×÷ """ »ò """ '&' Ó¦ µ± д ×÷ "&" »ò "&"
<INPUT name="num" value="0"
onChange="if (compare(this.value, "help")) {gethelp()}">
SGML ÔÊ Ðí (') ±» °ü º¬ ÓÚ Óà ˫ Òý ºÅ (") µÄ ÌØ ÐÔ ×Ö ·û ´® ÖÐ, »ò Ïà
·´. Òò ´Ë Ï ÁÐ ÊÇ Õý È· µÄ:
"this is 'fine>ÎĵµµÄ¶¯Ì¬ÐÞ¸Ä
µ± ÎÄ µµ ±» µ÷ Èë ʱ ÔË ÐÐ µÄ ½Å ±¾ ¿É ÒÔ ¶¯ ̬ µØ ÐÞ ¸Ä ÎÄ µµ µÄ ÄÚ ÈÝ. Èç ´Ë ×ö µÄ ÄÜ Á¦ È¡ ¾ö ÓÚ ½Å ±¾ Óï ÑÔ ×Ô Éí (Àý Èç ÓÉ Ä³ Щ Âô Ö÷ Ìá ¹© µÄ HTML Îï ¼þ Ä£ °å ÖÐ µÄ "document.write" Óï ¾ä).ÎÄ µµ µÄ ¶¯ ̬ ÐÞ ¸Ä ¿É Èç Ï ½¨ Ä£:
HTML ÎÄ µµ ±» Ç¿ ÆÈ SCRIPT Ôª ËØ ǰ ºó ¾ù ÓÚ Óë HTML DTD Ò» ÖÂ.
- Ëù ÓÐ µÄ SCRIPT Ôª ËØ ¾ù ÔÚ ÎÄ µµ ±» µ÷ Èë ʱ ÒÀ ´Î ±» ÆÀ ¶¨.
- Ëù ÓÐ ÔÚ Ò» ¸ö ¸ø ³ö µÄ SCRIPT Ôª ËØ ÖÐ µÄ ½Å ±¾ ½á ¹¹ ±» ÈÏ Îª Éú ³É SGML CDATA. Ëü ÃÇ ½á ºÏ µÄ Éú ³É ÎÄ ×Ö ±» ²å Èë µ½ SCRIPT Ôª ËØ µÄ λ ÖÃ.
- Éú ³É µÄ CDATA ±» ÖØ РÆÀ ¶¨.
ÏÂ Ãæ µÄ Àý ³Ì ¾Ù Àý ˵ Ã÷ ÁË ½Å ±¾ ÊÇ Èç ºÎ ¶¯ ̬ ÐÞ ¸Ä ÎÄ µµ µÄ. ÏÂ Ãæ µÄ ½Å ±¾:<TITLE>Test Document</TITLE> <SCRIPT type="text/javascript"> document.write("<p><b>Hello World!<\/b>") </SCRIPT>¾ß ÓÐ Ïà ͬ ÓÚ HTML ±ê ×¢ µÄ Ч ¹û:<TITLE>Test Document</TITLE> <P><B>Hello World!</B>Ϊ²»Ìṩ½Å±¾µÄÓû§´úÀíÆ÷Éè¼ÆÎĵµ
ÏÂ Ãæ µÄ Õ ½Ú ÌÖ ÂÛ ÁË ×÷ Õß ÔÚ Éè ¼Æ ºÃ µÄ HTML ÎÄ µµ ʱ Ó¦ ¸Ã ¿¼ ÂÇ µÄ ¹Ø ÓÚ È± ÉÙ ½Å ±¾ Ö§ ³Ö ÎÊ Ìâ.NOSCRIPT ÔªËØ
<!ELEMENT NOSCRIPT - - (%block)>¿ª ʼ: Ðè Òª, ½á Êø: Ðè ÒªNOSCRIPT Ôª ËØ ÔÊ Ðí ×÷ Õß ÔÚ ½Å ±¾ ÎÞ ·¨ ÔË ÐÐ µÄ ʱ ºò Ìá ¹© ÂÖ Ìæ ÄÚ ÈÝ. NOSCRIPT Ôª ËØ µÄ ÄÚ ÈÝ Ö» ÔÚ ½Å ±¾ - Öª µÀ µÄ Óà »§ ´ú Àí Æ÷ ÉÏ ÔÚ Ï ÁÐ Çé ¿ö ±» äÖ È¾:
<SCRIPT type="text/tcl"> ...some Tcl script to insert data... </SCRIPT> <NOSCRIPT> <P>To access the data, click <A href="http://someplace.com/data">here.</A> </NOSCRIPT>
Áí Ò» ÖÖ ½â ¾ö Õâ ¸ö ÎÊ Ìâ µÄ ·½ ·¨ ÊÇ °Ñ ½Å ±¾ Öà ÓÚ ´¦ ²¿ ÎÄ µµ ²¢ ÔÚ src ÌØ ÐÔ ÊÇ Ö¸ Ïò Ëü ÃÇ.
ÔÚ JavaScript ÖÐ×¢Êͽű¾
JavaScript Òý Çæ ÔÊ Ðí "<!--" ×Ö ´® ³ö ÏÖ ÔÚ Ò» ¸ö SCRIPT Ôª ËØ
¿ª ʼ ʱ, ²¢ ÇÒ ºö ÂÔ ºó Ðø µÄ ×Ö ·û Ö± µ½ ÐÐ Ä©. JavaScript °Ñ "//" ½â
Òë Ϊ ¿ª ʼ ×¢ ÊÍ ²¢ À© Õ¹ µ½ µ± ǰ ÐÐ Ä©. Õâ ÊÇ JavaScript ÆÊ Îö Æ÷ µÄ
Ðè Òª: Òþ ²Ø "-->" ×Ö ´®.
<SCRIPT type="text/javascript">
<!-- to hide script contents from old browsers
function square(i) {
document.write("The call passed ", i ," to the function.","<BR>")
return i * i
}
document.write("The function returned ",square(5),".")
// end hiding contents from old browsers -->
</SCRIPT>
<SCRIPT type="text/vbscript"> <!-- Sub foo() ... End Sub ' --> </SCRIPT>
<SCRIPT type="text/tcl">
<!-- to hide script contents from old browsers
proc square {i} {
document write "The call passed $i to the function.<BR>"
return [expr $i * $i]
}
document write "The function returned [square 5]."
# end hiding contents from old browsers -->
</SCRIPT>