我正在將所有網站的頁面加載到主索引頁面,並通過將href拆分爲段並使用.hash功能在主域名之後添加段來更新URL顯示,如下所示:清除#無需重新加載頁面
$('a').click(function(event) {
event.preventDefault();
var my_url = this.href;
var pathArray = this.href.split('/');
var newPathname = "";
for (i = 3; i < pathArray.length; i++) {
newPathname += "/";
newPathname += pathArray[i];
}
$('body').load(my_url);
window.location.hash = newPathname;
這工作正常,但我面臨一個小問題。當用戶訪問http://www.mywebsite.com/然後單擊,例如,在「關於」鏈接,選擇的頁面加載,並在地址欄顯示:
http://www.mywebsite.com/#/about
但是,如果用戶使用不同的頁面開始:
http://www.mywebsite.com/#/about
然後點擊後,鏈接變成:
http://www.mywebsite.com/#/about/#/about
等等無窮大。
這怎麼解決?
也許有一種方法可以清除散列,然後顯示新的散列(即刪除以#/開頭的所有內容,然後添加新散列) - 或者有更好的解決方案?
美麗。謝謝你,@ Kinkink! –
其實,@Kolink,即使你的答案是我正在尋找的答案,但它揭示了該網站的另一個問題。在網址中沒有散列的頁面,如下所示:'http:// www.mywebsite.com/about' - 仍然會這樣做:'http://www.mywebsite.com/about /#/ about' - 你的代碼片段如何修改以解決這個問題呢? –
嗯......沒有什麼可以做到的,因爲那需要改變路徑本身的一部分,強制重新加載。我看到它發生在Facebook上幾次,所以我猜測沒有真正的解決方案! –