URL地址中的#符號

URL地址中的#符號

原文:http://www.cnblogs.com/jintianhu/archive/2011/02/12/1952577.html

一般我們想讓一個a標籤點擊後執行javascript代碼,有以下幾種寫法:
方式一:<a href="#" onclick="alert(1);">點擊一</a>
這種方式的缺點就是點擊後會在地址欄的URL後面加#號,同時把頁面移動到頂部,如下圖所示:


方式二:<a href="javascript:void(0);" onclick="alert(1);">點擊一</a>
這種方式避免了方式一的缺點,點擊後對頁面沒有任何影響。但是有一個致命的缺點,就是在IE6下不能執行form對象的submit()方法,也不能執行跳轉語句,比如
<a href="javascript:void(0);" onclick="document.forms[0].submit();">點擊一</a>
<a href="javascript:void(0);"  onclick="window.location.href='http://www.google.com';">點擊一</a>
在IE6下就無效,換成href=”#”就能在IE6下正常執行。

方式三:<a href="###" onclick="alert(1);">點擊一</a>
點擊後雖然會在地址欄的URL後面加三個#號,但是不會影響滾動條,同時在IE6下也能執行form對象的submit()方法與跳轉語句,算是一個比較折中的方法。

結論:我個人認爲如果執行的javascript方法中需要提交表單、跳轉頁面,則用方式三,其它情況都用方式二。

:這又附帶引出另一個問題,一般重新加載當前頁面用如下的javascript代碼:
window.location.href = window.location.href;
但是當URL地址中含有#時,上述代碼無效,於是需要用如下代碼:
window.location.href = window.location.href.split('#')[0];
將URL地址以#符號分割開,取第一部分即可。

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