iOS Chrome上的HTML5历史API



出于测试目的,我想用许多条目填充历史记录。更确切地说,我想添加X个项目来禁用浏览器的后退按钮,因为即使用户点击了X次,他也会停留在同一页面上。

我是通过以下方式做到这一点的:

(function (){
for (var x = 0; x < 10; x++) {
history.pushState(null, document.title, location.pathname);    
}        
}());

因此,当页面被加载时,当前页面的10个元素被注入到历史中。此方法适用于所有支持历史API的浏览器,iOS上的Chrome除外!!!

使用上面的代码,iOS上的Chrome(7到10)会做一些非常奇怪的事情:

  • 它将选项卡中的标题替换为当前页面的url(因此,它没有在选项卡标题中显示"我的伟大网页",而是显示"mygreatpage.com/samplepage1">
  • 长按后退按钮检查条目,Chrome不会显示额外添加的条目-每隔一个浏览器就会显示10个以上代码所需的额外条目

Safari和其他所有iOS浏览器都可以随心所欲。我做错了什么?

对于iOS原生历史上的chrome。pushState被额外的扩展覆盖,如果你alert(history.pushState),你可以看到它不是我们在其他浏览器上看到的原生代码

,请参阅下面的polyfill可能会对您有所帮助

  1. HTML5历史API

  2. history.js

最新更新