所以我试图使用浏览器后退按钮制作一个单页面的网络应用程序。 有大量的HTTPRequests被激活加载页面,所以URL永远不会改变。
根据文档,我假设使用history.pushState()
来模拟页面遍历,然后使用popstate
处理程序进行导航。我试图在一个不太健壮的环境中测试它,所以我制作了一个单独的HTML文件,其中包含一些模拟AJAX请求和内容加载的按钮,它们都位于我的桌面上。
但是,一旦我尝试pushState()
这些'伪请求',我就会收到错误消息:
无法在“历史记录”上执行“pushState”:无法在原点为“null”的文档中创建URL为“file:/// C:/Users/me/Desktop/foo.html”的历史状态对象和URL'file:/// C:/Users/me/Desktop/historyTest.html'。 在HTMLButtonElement。 (文件:/// C:/Users/me/Desktop/historyTest.html:34:29)
历史记录API是否要求页面在服务器上才能运行?我的意思是因为origin被报告为null而不是我本地的文件路径。