轉字:http://my.oschina.net/castusz/blog/68186
結果在IE、Firefox、Chrome都是先執行的onclick事件,在項目中我們盡量不要同時使用這兩種方式。
A標簽的寫法
我們比較熟悉的鏈接<a>標簽寫法有以下3種:
1.<a href="鏈接地址" ></a>
或者
2.<a href="#" onclick="觸發一個事件的函數"></a>
或者
3.<a href="javascript:void(0);" onclick="觸發一個事件的函數"></a>
下面開始說一下不同瀏覽器中<a>標簽的兼容性。
對於firefox 而言,3種寫法都是可以的,基本沒有什么區別。
而對於IE瀏覽器或者IE內核的瀏覽器而言則不同:這不同主要體現在第2和3這二種寫法上。
先說一下第3種IE內核有時候會不認 href="javascript:void(0);" 因而觸發不了事件函數,導致點擊沒有任何反應。
那為什么會這樣呢?
原因是這樣的:IE內核的瀏覽器,識別<a>標簽的時候,先去找 href 屬性,並且先執行href中的鏈接或者函數,如果不識別就不做任何反應[IE最新版已經修改這個問題了]。
解決方法就是盡量不用這個 href="javascript:void(0);" 的屬性。
然后第2種,這個不同主要體現在主頁面嵌入iframe的時候,如果你的<a >標簽中的 “href” 屬性為 “#”的話,你點擊鏈接時,頁面會自動的滾動,直到iframe的頂部成為當前窗口的最頂部,解決這個問題的方法:
把<a>換成<span >或者別的標簽 (在不影響樣式的前提下)。
注意:盡量不要用javascript:協議做為A的href屬性,這樣不僅會導致不必要的觸發window.onbeforeunload事件,在IE里面更會使gif動畫圖片停止播放。