1. 程式人生 > >javascript:void(0);在火狐、IE中也會跳轉到新的頁面問題

javascript:void(0);在火狐、IE中也會跳轉到新的頁面問題

在專案中遇到一個奇怪的問題:

<a target="_blank"  href="javascript:void(0);">點我啊</a>

這樣一段程式碼,在谷歌中點選a標籤,並不會發生頁面跳轉,但是在IE和火狐則會跳轉到一個空白頁面。

問題原因
瀏覽器預設處理事件的順序有差異。
Chrome順序:onclick -> href -> target
IE和Firefox順序:onclick -> target -> href

解決方案
1.新增onClick事件,直接return false阻止之後瀏覽器預設事件的執行。

<a
target="_blank" onclick="return false" href="javascript:void(0);">
點我啊</a>

2.直接去掉href屬性

<a target="_blank">點我啊</a>

其實就是事件衝突導致的,只要保證不在target和href同時存在時,就不存在該問題。出現了該問題最好採用去掉href的方式,因為return false會阻止瀏覽器預設事件的執行,如果之後有用到的話會變得更麻煩。