在HTML中,JavaScript代碼不僅可以放到“<script>”與“</script>”標(biāo)簽中,還可以放到一個(gè)URL中。它的實(shí)現(xiàn)方法是在一個(gè)URL中添加一個(gè)“javascript:”偽協(xié)議限定符,這種指定的協(xié)議類型說明了URL的內(nèi)容是JavaScript解釋器將要運(yùn)行的JavaScript代碼的一個(gè)任意的字符串。它被當(dāng)作單獨(dú)的代碼對(duì)待,每條語句必須用分號(hào)分隔開,并且“”注釋必須取代“//”。例如可以將下列JavaScript URL粘貼到瀏覽器地址欄并運(yùn)行:
1 |
javascript:var now = new Date(); "< h1 >The time is:</ h1 >" + now;
|
通常情況下,可能還希望使用一個(gè)JavaScript URL來執(zhí)行某些JavaScript代碼而不改變當(dāng)前顯示的文檔。要做到這點(diǎn),需要確保JavaScript URL中的最后一條語句沒有返回值。確保這點(diǎn)的一種方式是使用“void”運(yùn)算符來顯示的指定一個(gè)未定義的返回值。請(qǐng)對(duì)比下面例子產(chǎn)生的結(jié)果:
1
2
3 |
javascript:window.open("about:blank");
javascript:void window.open("about:blank");
javascript:window.open("about:blank"); void 0;
|
“javascript:”偽協(xié)議限定符可以和HTML屬性一起使用,該屬性的值也應(yīng)該是一個(gè)URL環(huán)境,一個(gè)超鏈接的“href”屬性就滿足這個(gè)條件。請(qǐng)參考下面的列子:
1
2
3
4
5
6
7
8
9
10
11
12 |
< a href='javascript:
var e = "" , r = "" ;
do {
e = prompt ("表達(dá)式:" + e + "\n" + r + "\n", e);
try {
r = "結(jié)果:" + eval(e);
} catch(ex) {
r = ex ;
}
} while(e);
void 0;
'>計(jì)算器</ a >
|
|