僞鏈接的差異 原

<a href='javascript:;'></a>
<a href='javascript:void(0)'></a> <!--本質上與上一條相同-->

這些都是廣泛使用的創建僞鏈接的方法,在絕大多數情況下他們工作良好。可是如果同時註冊了window.unload事件,那麼在IE8/9等瀏覽器中,會先觸發unload事件,然後纔會觸發僞鏈接上綁定的事件。

比如:

<a href='javascript:;' onclick='alert("OK")>click me</a>
<script>
window.unload = function(){
   return confirm("要離開此頁面嗎?");
}
</script>

就會先彈出"要離開此頁面嗎"的提示,然後纔會彈出"OK"。而確認離開頁面無論點擊什麼,其實都是沒有作用的。我們真正的期望是點擊"Click Me"只彈出"OK"。

那麼如何解決的?可以使用href='###'替代href='javascript:;'。上面的例子可以修改爲:

<a href='###' onclick='alert("OK")>click me</a>
<script>
window.unload = function(){
   return confirm("要離開此頁面嗎?");
}
</script>

如此即可輕鬆解決IE8/9中的問題,這一方法同樣在Chrome/firefox, IE10+工作良好。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章