2012-10-25 39 views
2

我有一個菜單欄。在菜單欄上的每一項都是一個超鏈接:如何避免選擇菜單項後瀏覽器地址欄中的#

<a href="#" title="item1"> 

基於菜單選擇,我展示了幾個div的和隱藏的div剩餘。一切正常。如果我點擊菜單項,結果顯示在相同的頁面上,但是在瀏覽器地址欄上#符號顯示如localhost/abc#這會導致激活瀏覽器後退(< - )按鈕,可能會給出錯誤的假設用戶可以點擊瀏覽器上的後退按鈕。

有沒有辦法避免在地址欄中顯示#

我在事件處理函數中使用return false;聲明來禁用href鏈接。

+0

您在事件處理程序中返回false應該足以阻止#出現在地址欄中;檢查你的事件處理程序是否過早退出。 – Kelvin

+0

請分享您的JS代碼。 – Blazemonger

+0

Kelvin和Blaze,非常感謝您的回覆,我更正了JS代碼,現在我將錯誤的地方放回原位,現在我糾正了它。 – Balu

回答

1

如您所述,如果您終止事件處理程序return false,它將不會出現在您的地址欄中。基本上,有些事情不太像它應該在被調用的事件處理程序和return false之間(因爲它不返回)。確保你的JavaScript沒有錯誤。

+0

卡爾,非常感謝您的回覆,我更正了JS代碼,現在我將錯誤的位置放回原位,現在我改正了它。 – Balu

+0

如果您滿意,請選擇正確答案。 –

6

有沒有辦法避免在地址欄中顯示#號?

是的,你可以通過改變

<a href="#" title="item1"> 

<a href="javascript:void(0)" title="item1"> 

爲什麼顯示#避免#(從MDN)

HREF - 這是一個錨定件限定一個超文本鏈接源的單個必需屬性。它表示鏈接目標,即URL或URL片段。一個URL片段是一個名稱,前面帶有一個散列標記(#),它指定了當前文檔中的內部目標位置(ID)。 URL不限於基於Web(HTTP)的文檔。網址可能使用瀏覽器支持的任何協議。例如,file,ftp和mailto可在大多數用戶代理中使用。

+0

Vega,非常感謝您的回覆,我更正了JS代碼,我將錯誤的位置放回錯誤的位置,現在我糾正了錯誤。我再次通過用javascript替換#驗證:void(0)它也工作,謝謝分享。 – Balu