javascript:這個特殊的協議類型聲明了URL的主體是任意的javascript代碼,它由javascript的解釋器運行。
比如下面這個死鏈接:
<a href="javascript:void(0)">No response link</a>
將javascript代碼添加到客戶端的方法是把它放置在偽協議說明符號 javascript:后的URL中。這個特殊的協議類型聲明了URL的主體是任意的javascript代碼,它由javascript的解釋器運行。如果javascript:URL中的javascript代碼含有多個語句,必須使用分號將這些語句分隔開。這樣的URL如下所示:
javascript:var now =new Date();"<h1>This time:</h1>"+now;
當瀏覽器裝載這樣的URL時,它將執行這個URL中包含的Javascript代碼,並把最后一條javascript語句的字符串值作為新文檔的內容顯示出來。這個字符串可以含有HTML標記,並被格式化,其顯示與其他裝載進瀏覽器的文檔類型完全相同
效果圖:
javascript URL還可以只執行動作,但不返回的javascript語句。例如:
javascript:alert("Hello world")
裝載了這種URL時,瀏覽器僅執行其中的javascript代碼,但由於沒有作為新文檔來顯示的值,因此它並不改變當前顯示的文檔。
通常我們想用javascript:URL執行某些不改變當前顯示的文檔的javascript代碼。要做到這一點,必須確保URL中的最后一條語句沒有返回值。一種方法是用void運算符顯示地把返回值指定為undefined,只需要在javascript:URL的結尾使用語句void 0;即可。例如:下面的URL將打開一個新的空瀏覽器窗口,而不改變當前窗口的類容:
javascript:window.open("about:blank");void 0;
如果這個URL沒有URL運行符,window.open()方法的返回值將被轉化為字符串並顯示出來,當前窗口將被如下的文檔覆蓋。