在HTML中,JavaScript代碼不僅可以放到“<script>”與“</script>”標(biāo)簽中,還可以放到一個(gè)URL中。它的實(shí)現(xiàn)方法是在一個(gè)URL中添加一個(gè)“javascript:”偽協(xié)議限定符,這種指定的協(xié)議類型說(shuō)明了URL的內(nèi)容是JavaScript解釋器將要運(yùn)行的JavaScript代碼的一個(gè)任意的字符串。它被當(dāng)作單獨(dú)的代碼對(duì)待,每條語(yǔ)句必須用分號(hào)分隔開,并且“”注釋必須取代“//”。例如可以將下列JavaScript URL粘貼到瀏覽器地址欄并運(yùn)行:
1 | javascript:var now = new Date(); "< h1 >The time is:</ h1 >" + now; |
通常情況下,可能還希望使用一個(gè)JavaScript URL來(lái)執(zhí)行某些JavaScript代碼而不改變當(dāng)前顯示的文檔。要做到這點(diǎn),需要確保JavaScript URL中的最后一條語(yǔ)句沒有返回值。確保這點(diǎn)的一種方式是使用“void”運(yùn)算符來(lái)顯示的指定一個(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 > |
聯(lián)系客服