2017-03-12 95 views
0

我用下面的功能:保留原始網址pushState的

$(document).ajaxComplete(function() { 
    var currenturl = window.location.href; 
    var decodedUri = decodeURIComponent(currenturl); 

    var decodedUri2 =decodedUri.replace("&manufacturer[]=","/").replace("&page=","/").replace("&sort=","/").replace("&order=","/"); 
    history.pushState("", "", decodedUri2); 

}); 

我需要以某種方式在每個AJAX完成通過pushState的改變原來的網址,而不是以前更改URL。

使用上面的函數首先ajax完成pushState做的工作,但在接下來的ajax完成pushState decodedUri2試圖從更改的url替換,但我需要每次更改原始url和pushState的結果。那可能嗎?

實現此目的的任何想法?

謝謝!編號: 改編問題。每次Ajax完成時,一些屬性被添加到URL,我需要替換這些屬性。每個ajax請求都是一樣的。所以實際上我需要以某種方式每次完成ajax完成pushState當前的URL後ajax完成,但從原來的狀態。

示例http://ocdemo.eu/desktops

如果您在每次使用ajax更改url時從左列中選擇過濾器。所以每次我需要顯示的URL與其他

回答

0

東西,你就必須抓住這個URL變量和使用替代的是:

var initialUrl; 

$(document).ajaxComplete(function() { 
    var currenturl = window.location.href; 
    if (!initialUrl) { 
     initialUrl = decodeURIComponent(currenturl); 
    } 

    var decodedUri2 =initialUrl.replace("&manufacturer[]=","/").replace("&page=","/").replace("&sort=","/").replace("&order=","/"); 
    history.pushState("", "", decodedUri2); 

}); 
+0

我只是用你的代碼,但也許這是我的錯,需要重述這個問題。每次Ajax完成時,一些屬性被添加到URL,我需要替換這些屬性。每個ajax請求都是一樣的。所以實際上我需要以某種方式每次完成ajax完成pushState當前的URL後ajax完成,但從原來的狀態。請參閱:http://ocdemo.eu/desktops。如果您每次使用ajax更改url時從左列中選擇過濾器。所以每次我需要將顯示的網址替換爲其他內容 – PanBou