iOS Chrome上的HTML5历史记录API

san*_*a B 20 javascript html5 google-chrome ios html5-history

出于测试目的,我想用大量条目填充历史记录.更确切地说,我想添加X项以禁用浏览器的后退按钮,因为即使用户点击X次,他也会保持在同一页面上.

我这样做的方式如下:

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

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

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

  • 它会将标签中的标题替换为当前页面的网址(因此,不会在标签标题中显示"我的精彩网页",而是显示"mygreatpage.com/samplepage1"
  • 长按后退按钮检查条目,Chrome显示没有其他添加的条目 - 每个其他浏览器显示上述代码所预期的10个附加条目

Safari和其他所有iOS浏览器都可以满足我的需求.我究竟做错了什么?

小智 2

对于iOS上的chrome,本机history.pushState被附加扩展覆盖,如果您alert(history.pushState)可以看到它不是我们在其他浏览器上看到的本机代码

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

  1. HTML5-历史记录-API

  2. 历史.js