href="javascript:void(0);" considered harmful
有時候使用<a>標記僅僅是用來掛載click事件,我們常常這樣寫:
- <a href="javascript:void(0);" onclick="doSomething();">click</a>
- <a href="javascript:void 0;" onclick="doSomething();">click</a>
- <a href="javascript:;" onclick="doSomething();">click</a>
- <a href="javascript:void doSomething();">click</a>
這些寫法利用javascript“協議”和void運算子來告訴瀏覽器“這個連結哪裡都不去”,從而取消<a>作為“超級連結”的作用。不過會帶來一些問題,尤其是用於開啟popup windows時:
- 不能使用右鍵選單中的open in new window
- 不能把連結地址加入收藏夾
- 狀態列會顯示出終端使用者搞不懂的“程式碼”,他們會認為“出錯了”
- 一旦指令碼下載不完整或瀏覽器僅用了JavaScript,網頁會非常sb
更為嚴重的是,在IE中會導致一些你永遠也猜不出原因的古怪問題。例如IE6中,用這種方法掛載的事件處理函式中改變img的src屬性,瀏覽器不會顯示圖片,必須在右鍵選單中點show picture才能顯示
XHTML:
<a href="#" onclick="aFunction();return false;">
A Link
</a>
The return false (that must appear after the last function call) informs the browser that the action of returning a reference to a URL, should not evaluate. Instead it should return false, including internal links, and therefore it does nothing.
相關文章
- 請解釋下href="javascript:void(0)"和href="#"的區別是什麼?JavaScript
- a標籤下的href="javascript:void(0)"起到了什麼作用?說說你對javascript:void(0)的理解?JavaScript
- 關於火狐和IE下href=”javascript:void(0)”相容性的問題JavaScript
- [Javascript] Replace undefined with void 0JavaScriptUndefined
- 【JavaScript】奇怪的知識void 0 === undefined 為 trueJavaScriptUndefined
- a===void 0 作用
- JavaScript void 運算子JavaScript
- 為什麼用「void 0」代替「undefined」Undefined
- 前端戰五渣學JavaScript——void 運算子前端JavaScript
- 你真的知道為什麼要使用void(0)代替undefined嗎?Undefined
- JavaScript中的+0與-0JavaScript
- location.href
- 你知道void和Void的區別嗎
- NSObject +(void)load 和+(void)initialize 方法的理解Object
- URL href 屬性
- TypeScript void 型別TypeScript型別
- 談談url、href、src
- CSSStyleSheet.href 屬性CSS
- 24·iOS 面試題·+(void)load; +(void)initialize; 有什麼用處?iOS面試題
- 調皮的location.href
- <base href=““/> 標籤的使用
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- int存放到void指標指標
- <a>為空使用href屬性值填充
- 淺談src與href的區別
- JavaScript中0, "", null, false, undefined的區別JavaScriptNullFalseUndefined
- window.location.replace vs window.location.href
- a標籤href與onclick之間的碰撞
- JavaScript學習筆記023-物件方法0包裝物件0靜態屬性JavaScript筆記物件
- Java的Void方法是反模式的? - DZoneJava模式
- setTimeout(fn, 0) // it works - JavaScript 事件迴圈 動畫演示JavaScript事件動畫
- JavaScript 從 0 到 1 入門手冊(2020版)JavaScript
- Python和JavaScript哪個容易上手?0基礎必看!PythonJavaScript
- window.location.href與window.location.hash區別
- ESLint對a標籤href屬性警告解決方法EsLint
- jQuery動態修改連結的href屬性值jQuery
- JavaScript 獲取0-1之間的隨機數JavaScript隨機
- OC中的SEL與C中的const void *
- Java培訓分享void的用法和意義Java