用javascript更改网址?

时间:2014-03-25 17:02:34

标签: javascript jquery dom

是否可以在不刷新页面的情况下使用javascript更改您的网址(即删除网址参数)?

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

这样可行但是由于assign重新加载页面,它会进入无限循环的重载。救命啊!

3 个答案:

答案 0 :(得分: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]);
}

答案 1 :(得分: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");

答案 2 :(得分:0)

你需要使用某种类型的库,例如AJAX,只要我知道简单地用加载的主体替换当前的主体,即在之前引用

  

JQuery的Ajax功能与其他部分密切相关   功能。

     

还有一些像Matt这样的其他独立Ajax库   Kruse的Ajax工具箱 - 也许会有所帮助。

     

我会考虑加载完整的jQuery库。如果你链接到   在CDN上使用jQuery,加载时间将是微不足道的。

JQuery CDN(包含在脚本标记中) //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);
});