2014-03-25 89 views
0

是否有可能改變你的網址(即刪除網址參數)與JavaScript而不刷新頁面?用javascript更改網址?

if ($(location).attr("href").substring("notSupported")) { 
     var url = $(location).attr("href").match(".*index.action"); 
     window.location.assign(url[0]); 
} 

這個工作正常,但是由於assign重載頁面,它會進入無限循環的重載。幫幫我!

+0

是的,看看HTML5的歷史API和'window.history'。只適用於現代瀏覽器。 –

回答

0

當然,您可以使用javascript推送歷史狀態。

if ($(location).attr("href").substring("notSupported")) { 
    var url = $(location).attr("href").match(".*index.action"); 

    var currentState = history.state; // current page 
    history.pushState(currentState , "Page Title", url[0]); 
} 
0

是的,你可以更改URL無需重新加載: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

與參數: https://forum.jquery.com/topic/changing-url-in-the-address-bar-without-page-refresh

var stateObj = { foo: "bar" }; 
history.pushState(stateObj, "page 2", "bar.html"); 
+0

不僅僅是從您找到的鏈接複製和粘貼示例代碼,而是付出更多努力。解決OP的問題或解決方案。 –

+0

努力是相對於這個問題的努力量。簡單的谷歌搜索會發現這個確切的問題大聲笑。 –

+1

你知道,你沒有錯...... –

0

,你需要儘可能使用某種類型的庫,例如AJAX的IM知道簡單地用當前機身替換當前機身,即如之前所引用的那樣

JQuery的Ajax函數與其餘的 函數緊密交織在一起。

還有其他一些獨立的Ajax庫像Matt Kruse的Ajax工具箱 - 可能有幫助。

我會考慮加載完整的jQuery庫。如果您在CDN上鍊接到 jQuery,加載時間將很少。

JQuery的CDN(在script標籤包含) //ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js

,然後加載頁面使用

var url = "/page2.html"; 
$.ajax({url: url}) 
.done(function(data) { 
$('#content').html(data); 
});