javascript - iPhone上的pageshow事件仅触发一次

标签 javascript ios iphone mobile-safari

我正在尝试在野生动物园(iphone)上使用pageshow事件来解决后退按钮缓存的一些问题。但是,使用后退按钮时,它似乎只能工作一次。

我在A页面上有此处理程序:

window.addEventListener("pageshow", function () {
    alert("pageshow");
});

然后我转到B页面,然后返回A-一切正常。但是,当我再次转到B页面并再次返回A时,则什么也没有发生。

例:
转到该小提琴:https://jsfiddle.net/y278q8q0/,然后导航到任何其他页面并使用后退和前进按钮播放。该事件将仅触发一次。

在ios 8.4的iphone 6上看起来如何:
https://vid.me/5WPe

编辑:

问题被标记为与该问题重复的文件:'pageshow' is not received when pressing "back" button on Safari on *IPad"

很难说这些问题是否有相同的原因。就我而言,事件一开始总是触发一次。我也尝试从提到的问题中实现所有非jquery解决方案,但没有一个对我有用。

最佳答案

post from 2012中可能解决了相同的问题。

因此,您的代码应为:

window.addEventListener("pageshow", function () {
   if (event.persisted) {
     alert("pageshow");
   }
});

我目前无法使用野生动物园,因此无法测试。请回答这是否正确。

关于javascript - iPhone上的pageshow事件仅触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35849902/

相关文章:

javascript - Node.js 内存使用量永远不会减少

javascript - 解析具有特定映射的 JSON 字符串

在网页上仅使用 JavaScript 上传文件

iphone - 应用程序再次激活后如何刷新 UITableView?

ios - 当我调用 api 时,我使用以下方法请给出解决方案,我通过 COCOAPOD 安装 Afnetwoking

javascript - 你如何在 React 中删除/添加大量按钮(或任何 DOM 元素)的类?

iphone - 如何分别获取id和message的值

ios - 在navigationBar中设置rightBarButtonItem

iphone - 图像选择器 Controller

ios - 苹果手机 :active pseudoclass not working in safari