JavaScript中偽協議 javascript:使用探討_javascript技巧

來源:互聯網
上載者:User

將javascript代碼添加到用戶端的方法是把它放置在偽協議說明符javascript:後的URL中。這個特殊的協議型別宣告了URL的主體是任意的javascript代碼,它由javascript的解譯器運行。如果javascript:URL中的javascript代碼含有多個語句,必須使用分號將這些語句分隔開。這樣的URL如下所示:

javascript:var now = new Date(); "<h1>The time is:</h1>" + now;

當瀏覽器裝載了這樣的URL時,它將執行這個URL中包含的javascript代碼,並把最後一條javascript語句的字串值作為新文檔的內容顯示出來。這個字串值可以含有HTML標記,並被格式化,其顯示與其他裝載進瀏覽器的文檔完全相同。

javascript URL還可以含有只執行動作,但不傳回值的javascript語句。例如:

javascript:alert("hello world!")

裝載了這種URL時,瀏覽器僅執行其中的javascript代碼,但由於沒有作為新文檔來顯示的值,因此它並不改變當前顯示的文檔。

通常我們想用javascript:URL執行某些不改變當前顯示的文檔的javascript代碼。要做到這一點,必須確保URL中的最後一條語句沒有傳回值。一種方法是用void運算子顯式地把傳回值指定為underfined,只需要在javascript:URL的結尾使用語句void 0;即可。例如:下面的URL將開啟一個新的空瀏覽器視窗,而不改變當前視窗的內容:

javascript:window.open("about:blank"); void 0;

如果這個URL沒有void運算子,window.open()方法的傳回值將被轉換成字串並被顯示出來,當前視窗將被如下所示的文檔覆蓋。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.