本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

为什么方法 history.pushState() 在我的本地 HTML 中不起作用?

发布于2024-11-04 23:25     阅读(898)     评论(0)     点赞(25)     收藏(2)


这是我第一次来这里,所以请对我宽容一点。我目前正在寻找一种方法来更改当前 URL,而无需将用户重定向到新页面。我想?id=在 URL 中包含一个。我在这里找到了很多关于的主题history.pushState(),它实际上在浏览器中对我有用。当我在 google.com 上时,它在 JavaScript 控制台中工作,但当我在本地 .html 文件中尝试它时,它就不起作用了!

以下是基本示例:

function changeURL() {
  var stateObj = {
    info: "new page"
  };
  
  history.pushState(stateObj, "New Page", "newpage.html");
}
<button onclick=changeURL()> Test </button>

如果我在浏览器中输入该函数,它可以工作,但是一旦我打开 .html 文件,它就不起作用。它什么也不做。

如果我打开我的 html 并在 JS 控制台中输入代码,我会得到以下结果:

VM58:2 Uncaught DOMException: Failed to execute 'pushState' on 'History': A history state object with URL'file:///C:/Users/conta/Desktop/test/newpage.html' cannot be created in a document with origin 'null' and URL 'file:///C:/Users/conta/Desktop/test/Test.html'.
at <anonymous>:2:13

谢谢大家的帮助!


解决方案


为什么不使用

document.location.href = 'newPageUrl';

这是通常的方法,而不是侵入历史记录。




所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.qianduanheidong.com/blog/article/535605/fd17b80d78663646c5d4/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)