介紹了 javascript 偽協議, 並說明瞭它的特點及其用途 ...
簡介
javascript
通信協議是一個偽協議[1], 用於指定 URL 為 JavaScript 代碼
-
語法:
javascript:someScript;
someScript
是一個或多個使用;
分隔的 JavaScript 語句.
-
示例
<a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>
特點
-
返回值會替換當前文檔
-
對於 Chrome 瀏覽器來說, 如果最後一條 JavaScript 語句的值為字元串 (使用
''
,""
或`
括起來的值), 那麼該字元串會替換當前文檔的內容, 作為新文檔顯示出來 -
對於 Firefox 瀏覽器來說, 如果最後一條瀏覽器的返回值不為
undefined
, 那麼就調用該返回值的toString()
方法 (如果 toString() 方法不存在就調用valueOf()
方法), 得到的結果作為新文檔顯示出來 -
返回值為
undefined
的幾種常見寫法javascript:; javascript:undefined; // 全局變數 undefined 的值可能被更改 // void 將之後的內容當作表達式, 然後對該表達是求值, 並始終返回 undefined, 而不管全局變數 undefined 的值是否被改變 // 以下寫法等價 javascript:void(0); javascript:void 0;
-
用途
- 任何使用 URL 的地方都可以使用該通信協議
-
在保留錨元素 href 屬性的同時防止點擊錨元素頁內/外跳轉
javascript:; javascript:undefined; javascript:void(0);
-
當作 bookmarklet
// 修改書簽的 URL 為以下代碼, 就可實現分屏功能 javascript:'<html><head><title>'+document.title+'</title></head><body style="margin:0;"><iframe style="border:none;" width="50%" height="100%" src='+location.href+'></iframe><iframe style="border:none;" width="50%" height="100%" src='+location.href+'></iframe></body></html>';
-
執行 JavaScript 代碼 (不推薦)
// 更改頁面背景為綠色 (推薦為錨元素綁定事件來更改頁面背景) <a href="javascript:void(document.body.style.backgroundColor='green');"> // 打開新頁面 (註意需返回 undefined, 否則在火狐瀏覽器會替換文檔) <a href="javascript:window.open('about:blank'); void(0);">
-