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

在浏览器中更改URL而不使用JavaScript加载新页面

谭泉
2023-03-14
问题内容

我将如何执行一个JavaScript动作,该动作可能会对当前页面产生一些影响,但同时也会更改浏览器中的URL,因此,如果用户点击重新加载或添加书签,则会使用新的URL?

如果“后退”按钮将重新加载原始URL,那也很好。

我正在尝试在URL中记录JavaScript状态。


问题答案:

对于HTML 5,请使用history.pushState函数。举个例子:

<script type="text/javascript">
var stateObj = { foo: "bar" };
function change_my_url()
{
   history.pushState(stateObj, "page 2", "bar.html");
}
var link = document.getElementById('click');
link.addEventListener('click', change_my_url, false);
</script>

和href:

<a href="#" id='click'>Click to change url to bar.html</a>

如果要更改URL而不在后退按钮列表中添加条目,请history.replaceState改用。



 类似资料:
  • 问题内容: 我很清楚使用URL片段来跟踪AJAX支持的网页上的状态的技术,但是最近我注意到很多站点在做类似的事情但没有片段。 例如,最新版本的Facebook中的图片查看器以这种方式运行。左侧和右侧导航按钮是简单的链接,没有片段,单击这些片段可以更改浏览器的URL,而无需加载整个页面。 另一个示例是GitHub的存储库浏览器,每个文件/文件夹都是一个简单的链接,可更改页面状态和浏览器URL,而无需

  • 非常简单的要求,但很难做到这一点。有一个简单的页面,我打印参数在url路径。 ngtest.html 在浏览器窗口中: 将更改为类似 什么也没发生。按F5键,它将按预期工作。 不确定这是否与浏览器行为有关,但如何强制页面在参数更改后刷新Enter?

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

  • 问题内容: 我梦ed以求的是chrome(开发者通道)实现了一种无需重新加载页面即可通过javascript(地址而非域)更新地址栏的方法,或者他们确实做到了。 但是,我找不到我 想 读的文章。 我疯了还是有办法做到这一点(在Chrome中)? ps我不是在谈论window.location.hash等。如果以上存在,则该问题的答案将是不正确的。 问题答案: 现在,您可以在大多数“现代”浏览器中执

  • 现在我在为sms网关执行api时遇到了一个问题。他们让我点击一个网址,那就是http://bulksmsgateway.in/sendmessage.php?user=........ 但是我必须在浏览器中不加载这个网址。所以我使用卷曲方法。这是一个支持PHP的windows服务器。 我的代码在下面- curl_init; curl_setopt($ch,CURLOPT_USERAGENT,'Mo

  • 问题内容: 我目前正在编写一个复杂的AJAX应用程序,并且整个站点都有干净的URL。目前,PHP为每个页面创建基本布局,但是当用户单击链接时,我不想离开每个页面,也不想在URL中包含哈希,因为它不会不适合该网站的其他部分。我知道这已经增加了网站上的负载,这似乎是很常见的问题,但是我想知道是否存在一种整洁的HTML5方法,即使技术上保持不变,它似乎也只是更改地址栏中的URL页。 问题答案: 您可以使