看到很多人都寫的是javascript:void(0);,新浪微博也是,為什麼不能直接寫成javascript:;?
阿新 • • 發佈:2018-12-23
北風網解答:
對於void的說明:
void 運算子對任何值返回 undefined。該運算子通常用於避免輸出不應該輸出的值,例如,從 HTML 的 <a> 元素呼叫 JavaScript 函式時。要正確做到這一點,函式不能返回有效值,否則瀏覽器將清空頁面,只顯示函式的結果。例如:
<a href="javascript:window.open('about:blank')">Click me</a>
這使 window.open() 呼叫返回 undefined,它不是有效值,不會顯示在瀏覽器視窗中。
提示:請記住,沒有返回值的函式真正返回的都是 undefined。
針對樓主的問題,借用上面stackoverflow連結中的程式碼:
<a onclick="fn()">Does not appear as a link, because there's no href</a>
<a href="javascript:void(0)" onclick="fn()">fn is called</a><a href="javascript:undefined" onclick="fn()">fn is called</a>
<a href="javascript:" onclick="fn()">fn is called too!</a>