2015-10-12 36 views
0

這是我的代碼:pushState - 從href中刪除父目錄?

$("a").on("click", function(event) { 

    var refrence = $(this).attr("href"); 
    window.history.pushState({}, "", refrence); 
    event.preventDefault(); 

}); 

現在,如果我點擊一個錨第一次,讓我們說這是href是:http://example.com/pages/about

URL正確的變化;但是,如果我點擊這個錨下一次:http://example.com/pages/contact

網址上的瀏覽器將成爲:http://example.com/pages/pages/contact

你看/頁從URL目錄沒有明確首次。我該如何解決這個問題?

編輯:

<a href="pages/about.html" class="ajax">About</a> 
<a href="pages/contact.html" class="ajax">Contact</a> 

這是HTML我處理。

// ajax 
var $main = $("main"); 

$(".ajax").on("click", function(event) { 

    var refrence = $(this).prop("href"); 
    var myAjax = function() { 
     $main.load(refrence); 
    }; 
    window.history.pushState(myAjax(), "", refrence); 

    event.preventDefault(); 

}); 

這是我正在使用的JS全功能。

另外我在本地主機上工作。

回答

1

使用像/pages/about.html絕對URL(用斜線),而不是像pages/about.html相對URL或提供base元件等<base href="/">

否則,一旦導航(通過將靜態鏈接,或通過使用在JS history.pushState()),相對鏈接都解決了基於更新後的當前目錄(/pages/ + pages/about.html = /pages/pages/about.html,等等)。

+0

我檢查了您的解決方案,但沒有奏效。肯定我沒有** console.log(refrence)**,我可以看到這個URL是絕對的,因爲你已經說過它應該是,但絕對路徑是錯誤的。這是第二個日誌:http://example.com/pages/pages/contact – Pooria

+1

然後請提供您的HTML代碼,其中包含您正在處理的鏈接('A'元素)。 –

+0

Hi Marat。我編輯了我的帖子。謝謝 – Pooria