javascript 通信協議

来源:https://www.cnblogs.com/ayuuuuuu/archive/2020/07/22/13362571.html
-Advertisement-
Play Games

介紹了 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);">
      

  1. 網路通信協議 ↩︎


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • #1、cmd登錄mysql命令 #(1)需要回車輸入密碼 C:\Users\Administrator>mysql -h localhost -P3306 -u root -p Enter password: ******** #(2)註意-p和密碼之間沒有空格,-P代表埠 -p代表密碼 C:\U ...
  • 本文更新於2019-06-29,使用MySQL 5.7,操作系統為Deepin 15.4。 應用可使用PrepareStatement + Bind-Variable來防止SQL註入。 已知的非法符號有: ( ) < > [ ] /* */ -- # ; = ' + 空格 % ...
  • 最近總發現用戶表一些數據被刪了,找不到原因,後面通過創建觸發器來排查,當有操作x_yonghu表時,記錄下來插入日誌表中。 create or replace trigger trg_x_yonghu_log_aft_modify after update OF shouji, zigezhengh ...
  • #資料庫對應EFCore操作 #1,查某個id在某個集合被包含的數據 例如: 查 Id 在ids里的結合 //實現的sql是實體Id in ids,也就是ids跟Id 兩個集合的交集 var _ainfcfgs = await _ainfcfgServices.GetListAsync(x => i ...
  • 對於sql優化,除了索引之外,執行計劃和統計信息是無法繞開的一個話題,如果sql優化(所有的RDBMS)脫離了統計信息的話就少了一個為什麼的過程,味道就感覺少了一大半。剛接觸Postgresql,粗淺地學習總結一下Postgresql相關的統計信息。 postgresql 進程模型 開始之前,有必要 ...
  • 一、驗證表單 封裝一個函數用於驗證手機號 /** * @param {String}eleId * @param {Object}reg */ function checkInput(eleId,reg) { var ele = document.getElementById(eleId); ele ...
  • 1.屬性選擇器 通過HTML的屬性及屬性值來選擇元素,如<p att= "val" >文本內容</p>,class 即是<p>元素的屬性,val 則是 att 的屬性值 屬性選擇器的書寫格式:元素[屬性名稱 = "屬性值"] {color: red; },等號只是其中一種關係符號 屬性選擇器類型: ...
  • “常說,要認識一個人①,大概瞭解一下背景,然後見面時打招呼講什麼語言規矩範禮②,她回應了,聲音很好聽,你會繼續選擇③用選擇什麼語氣對待?而且又怎麼漂亮,相信自己不會拒絕④的,來預先處理⑤好情緒,好讓彼此能有一個新的開始⑥,給生活一個甜美的謎底吧⑦”--晚安,EmilyChen! (一)CSS簡介 C ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...