pushState 导致“无法在原点为‘null’的文档中创建”

问题描述

当单击以下 div 元素中的文本时,我试图将状态推送到浏览器历史记录:

<!DOCTYPE html>
<head>
</head>
<body>
<div onclick="onNavigate('/tester')">link</div>
<script>const onNavigate = path => history.pushState("","",window.location.pathname + path)</script>
</body>
</html>

我得到一个

未捕获的 DOMException 错误:无法执行 “History”上的“pushState”:URL 为“无法在“History”上执行“pushState”的历史状态对象:URL 为“file://[path-to-file]/index.html/tester”的历史状态对象' 不能在原点为 'null' 且 URL 为 'file://[path-to-file]/index.html' 的文档中创建。无法在来源为“null”且 URL 为“file://[path-to-file]/index.html”的文档中创建。

有很多与 pushState()replaceState() 相关的类似帖子 - 就像这个 History pushState throws Uncaught DOMException,但没有一个提供有效的解决方案。 我也试过用 location.href 而不是 location.pathname 没有成功。 怎么了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...