關於href="javascript:void 0;"
阿新 • • 發佈:2019-02-08
注:根據《JavaScript權威指南》總結。
犀牛書裡面總結了四種在HTML文件中嵌入JavaScript程式碼的方法:
- 內聯。放置在
<script>
標籤裡面; - 放置在
<script>
標籤的src屬性指定的外部檔案中; - 放置在HTML事件處理程式中,該事件處理程式由onclick或者onmouseover這樣的HTML屬性值指定;
放在URL裡面,這個URL使用特殊的“javascript:”協議。
那麼
href="javascript:void 0;"
就是第四種引用js的方法。
一、URL中的javascript用法
在url中使用javascript這種協議型別指定,javascript:
部分瀏覽器會將程式碼的執行結果作為新頁面的顯示內容。
其他瀏覽器不允許URL像上面一樣覆蓋當前文件。
當代碼沒有返回值時,瀏覽器都不會發生跳轉,所以實際上href="javascript: /*some code here*/"
差不多等價於onclick=/*some code*/
二、href=”javascript:void 0;”的意圖
為了確保javascript:URL 不會覆蓋當前文件,強制用void 操作符給表示式賦予undefined;
三、為什麼不直接使用undefined?
上面說到用void來賦予undefind,為什麼不直接返回undefined?
這是因為瀏覽器中,undefined是window物件的一個屬性,而在有些瀏覽器中允許修改這個屬性。