iphone上的pageshow事件只触发一次

时间:2016-03-07 17:17:08

标签: javascript ios iphone mobile-safari

我正在尝试在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解决方案,但没有一个对我有效。

1 个答案:

答案 0 :(得分:-2)

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

所以你的代码应该是:

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

我现在无法访问safari,所以我无法测试它。请回答这是否正确。