javascript 通訊協議
阿新 • • 發佈:2020-07-22
簡介
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);
-
執行 JavaScript 程式碼 (不推薦)
// 更改頁面背景為綠色 (不推薦, 這裡可以為錨元素繫結事件替換) <a href="javascript:void(document.body.style.backgroundColor='green');"> // 開啟新頁面 (注意需返回 undefined, 否則在火狐瀏覽器會替換文件) <a href="javascript:window.open('about:blank'); void(0);">
-