iOS Safari 在以下情况下似乎不会触发 pageshow 事件。
假设我有 3 页
- 页面 A :(在 pageshow 事件中有一些代码)
- Page B
- Page C
用户导航自A -> B
。按后退按钮。 (页面显示触发正常)
然后,用户导航到另一个页面,可以是页面 B 或页面 C。然后再次按后退按钮。 (页面显示不触发)
相反,如果用户再次最小化和最大化窗口或切换到另一个窗口并返回(通过按 iPhone 上的中间按钮),则会再次触发 pageshow 事件。
一切似乎在 Android 上运行良好
window.onpageshow = function(e) {
alert('hello');
}
还有其他人面对过吗?我在这件事上花了几个小时,却想不出解决方法。
任何帮助将不胜感激。
Hack:这对我有用
var myCustomEvent = (navigator.userAgent.match('iPhone') != null) ? 'popstate' : 'pageshow';
$(window).on(myCustomEvent, function(e) {
...
}
因为某些原因popstate
在 iOS 中每次页面状态更改时都会触发,但在 Android 中则不会。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)