超級鏈接a中javascript:void(0)彈出另外一個框問題


轉字: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動畫圖片停止播放。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM