当前位置: 首页 > 面试题库 >

JavaScript 如何在不重新加载页面的情况下修改URL?

郎项禹
2023-03-14
问题内容

有没有办法可以在不重新加载页面的情况下修改当前页面的URL?

如果可能,我想访问#哈希 之前 的部分。

我只需要更改域 的部分,所以就好像我没有违反跨域策略一样。

 window.location.href = "www.mysite.com/page2.php";  // Sadly this reloads

问题答案:

现在,可以在Chrome,Safari,Firefox 4+和Internet Explorer 10pp4 +中完成此操作!

有关更多信息,请参见此问题的答案:
使用新URL更新地址栏而不散列或重新加载页面

例:

 function processAjaxData(response, urlPath){
     document.getElementById("content").innerHTML = response.html;
     document.title = response.pageTitle;
     window.history.pushState({"html":response.html,"pageTitle":response.pageTitle},"", urlPath);
 }

然后,您可以window.onpopstate用来检测后退/前进按钮的导航:

window.onpopstate = function(e){
    if(e.state){
        document.getElementById("content").innerHTML = e.state.html;
        document.title = e.state.pageTitle;
    }
};


 类似资料:
  • 问题内容: 有没有办法可以在不重新加载页面的情况下修改当前页面的URL? 如果可能,我想访问#哈希 之前 的部分。 我只需要更改域 后 的部分,所以就好像我没有违反跨域策略一样。 问题答案: 现在,可以在Chrome,Safari,Firefox 4+和Internet Explorer 10pp4 +中完成此操作! 例: 然后,您可以用来检测后退/前进按钮的导航:

  • 问题内容: 转到任何GitHub 页面,然后单击任何目录/文件,并观察URL的更改方式,但仅更新页面的一部分。没有整个页面重新加载。 我如何使用jQuery做类似的事情? 这对大多数浏览器都有效吗(我使用的是Chrome)? 问题答案: 他们使用历史记录API,或者专门使用。 您可以使用它,不需要jQuery,但是有一些插件,例如history.js。 这适用于大多数浏览器,即Chrome,Saf

  • 问题内容: 我有http://mysite.com/index.php。 还有一个子菜单 主页=> http://mysite.com/index.php 关于我们=> http://mysite.com/about.us.php 产品=> http://mysite.com/products.php 但我希望http://mysite.com/index.php处理每个请求,并仅使用Ajax请求

  • 我有一个用户名列表,用户名列表根据用户输入的数量而增加。问题是,当用户输入用户名时,列表会被输入填充,只有当我的页面重新加载时,我的页面才会更新。这是我迄今为止尝试过的代码。 我无法在外页重新加载的情况下更新数据。请建议我如何更新ui:在外页重新加载的情况下重复数据。提前谢谢。

  • 问题内容: 嗨伙计, 我注意到,Github.com不会在浏览存储库时强制用户下载网页,而是使用AJAX来刷新页面内容。 Github还将浏览器地址栏更改为代表内容的真实地址。我不知道如果不通过在URL中使用#标签来实现这一点。 简而言之: github使用ajax加载新网页,而无需使用标签。他们如何做到这一点? 有任何想法吗? 问题答案: 通过使用: 这是HTML 5中的新功能。 您的网址将更改

  • 问题内容: 这是阿贾克斯 这可行,但是我希望更改URL,因为我在那里有很多参数,当然还有该参数。 问题答案: 您可以对成功的动作执行此操作: 有关基本操作方法,请参见这篇文章,以在不重新加载页面的情况下修改URL。 附加说明: 第一个参数是网页状态更改时(例如,每当有人在浏览器中按下后退或前进按钮时)所需的数据。请注意,在Firefox中,此数据限制为640k个字符。 title是第二个参数,可以