javascript - iOS Chrome 上的 HTML5 历史 API

标签 javascript ios html google-chrome html5-history

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

我正在按照以下方式执行此操作:

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

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

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

  • 它将选项卡中的标题替换为当前页面的 url(因此,选项卡标题中显示的不是“my great webpage”,而是“mygreatpage.com/samplepage1”
  • 长按后退按钮检查条目,Chrome 不显示额外添加的条目 - 每个其他浏览器显示 10 个额外的条目,如上面的代码所预期的那样

Safari 和所有其他 iOS 浏览器都按照我的意愿行事。 我做错了什么?

最佳答案

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

下面的 polyfill 可能对你有帮助,

  1. HTML5-History-API

  2. history.js

关于javascript - iOS Chrome 上的 HTML5 历史 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166164/

相关文章:

javascript - wookmark 修改和 li 并排和在彼此之下

android - react 导航从嵌套导航器更改 Activity 选项卡

ios - 在 Objective-C 中调用快速 View Controller 文件的变量

ios - 应用程序崩溃后如何重新启动

javascript - Viewchild undefined with material angular matsidenav

javascript - 从 Javascript 读取二进制文件(多浏览器)

php - 二维 JSON 数组转 PHP

javascript - Angular JS表中的嵌套ng-repeat

html - 我怎样才能在导航栏中居中链接和其他右/左定位的链接?

php - 我如何提交一个在我的 <form> 之外的 &lt;textarea&gt;?