javascript 通訊協議

簡介

javascript 通訊協議是一個僞協議[1], 用於指定 URL 爲 JavaScript 代碼javascript

  • 語法:html

    javascript:someScript;
    • someScript 是一個或多個使用 ; 分隔的 JavaScript 語句.
  • 示例java

    <a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>

特色

  • 返回值會替換當前文檔瀏覽器

    • 對於 Chrome 瀏覽器來講, 若是最後一條 JavaScript 語句的值爲字符串 (使用'', ""` 括起來的值), 那麼該字符串會替換當前文檔的內容, 做爲新文檔顯示出來網絡

    • 對於 Firefox 瀏覽器來講, 若是最後一條瀏覽器的返回值不爲 undefined, 那麼就調用該返回值的 toString() 方法 (若是 toString() 方法不存在就調用 valueOf() 方法), 獲得的結果做爲新文檔顯示出來code

    • 返回值爲 undefined 的幾種常見寫法htm

      javascript:;
      
      javascript:undefined;  // 全局變量 undefined 的值可能被更改
      
      // void 將以後的內容看成表達式, 而後對該表達是求值, 並始終返回 undefined, 而無論全局變量 undefined 的值是否被改變
      // 如下寫法等價
      javascript:void(0);
      javascript:void 0;

用途

  • 任何使用 URL 的地方均可以使用該通訊協議
    • 在保留錨元素 href 屬性的同時防止點擊錨元素頁內/外跳轉blog

      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 代碼 (不推薦)ip

      // 更改頁面背景爲綠色 (推薦爲錨元素綁定事件來更改頁面背景)
      <a href="javascript:void(document.body.style.backgroundColor='green');">
      
      // 打開新頁面 (注意需返回 undefined, 不然在火狐瀏覽器會替換文檔)
      <a href="javascript:window.open('about:blank'); void(0);">

  1. 網絡通訊協議 ↩︎

相關文章
相關標籤/搜索