【问题标题】:IOS 10.3.3 Iphone Safari beforeunload, unload, pagehide wont workIOS 10.3.3 Iphone Safari beforeunload, unload, pagehide 无法正常工作
【发布时间】:2018-04-18 12:22:22
【问题描述】:

我正在尝试在 iPhone Safari (602.1) IOS 10.3.3 上捕获 beforeunloadunloadpagehide 事件。但似乎在 iPhone 上这些事件不会触发,有趣的是,在具有相同版本的浏览器和 IOS 的 iPad 上,事件 do 会触发。我注意到的唯一区别是 iPad 为您提供了选项卡选项,但 iPhone 没有。有没有办法在 iPhone IOS 10.3.3 上捕捉这些事件?

注意:这些事件会在 iPhone IOS 8.4.1 上触发。

【问题讨论】:

  • iPhone doesn't support onbeforeunload, unload is deprecated,那么问题来了,你如何使用.pagehide? (显然,应该可以)
  • 你好 Adelin,实际上主要问题是所有这些事件都不适用于 IOS 10.3.3 safari,正如你所说,我已经读过 beforeunload,unload 不会工作,但是 pagehide 有相同的方式问题 ?我正在使用下面的页面隐藏,window.onpagehide = function() { return "abort"; } 或函数 abort() { return "abort"; } window.addEventListener("pagehide", abort);我也有 document.addEventListener("pagehide", abort);但这些不会在 Iphone 上触发。

标签: javascript iphone ipad mobile-safari


【解决方案1】:

我使用事件 pagehide 并(部分)成功,请参阅 Apple 指南中的 supported Events

pagehide不起作用的唯一情况是在 iPhone 10 上,网站存储到应用程序“跳板”时。 Web 应用程序(使用 Vuejs 构建)看起来像一个原生应用程序。离开“应用”不会触发pagehide。在相同情况下的旧 iPhone 和 iPad 上,pagehide 会触发。

window.addEventListener('pagehide', () => { // do something }

【讨论】:

  • 非常有用;但是 IOS 设备/Apple IDevices 因奇怪的行为而犯了十亿美元的错误。工作还是不工作?无法回答。许多有效的用例、分析、会话准确性都丢失了。希望他们尽快在所有修补和更新版本的 IOS 中提供支持。这是必须的。
猜你喜欢
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 2017-05-09
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多