【发布时间】:2011-03-15 11:12:41
【问题描述】:
有谁知道 iPad 是否支持 onbeforeunload 事件和/或是否有不同的使用方式?
我几乎尝试了所有方法,但似乎从未在 iPad(Safari 浏览器)上触发 onbeforeunload 事件。
具体来说,这是我尝试过的:
window.onbeforeunload = function(event) { event.returnValue = 'test'; }window.onbeforeunload = function(event) { return 'test'; }- (以上两者一起)
window.onbeforeunload = function(event) { alert('test')'; }- (上述所有函数,但在
<body onbeforeunload="...">内
所有这些都适用于 PC 上的 FF 和 Safari,但不适用于 iPad。
另外,我在加载页面后做了以下操作:
alert('onbeforeunload' in window);
alert(typeof window.onbeforeunload);
alert(window.onbeforeunload);
分别是:
trueobjectnull
因此,浏览器确实具有该属性,但由于某种原因它没有被触发。
我尝试离开页面的方法是单击后退和前进按钮、在顶部栏中进行谷歌搜索、更改地址栏中的位置以及单击书签。
有人知道发生了什么吗?非常感谢任何意见。
谢谢
【问题讨论】:
-
感谢两位的意见。这一定是你提到的原因之一。不幸的是,Apple 没有关于此限制和其他限制的官方文档。希望他们能想出一种更有创意的方式来启用此功能,同时防止恶意使用它。我经常听到人们不小心点击离开页面并丢失了他们在表单中输入的所有数据。
-
您是否尝试过使用
addEventListener()? -
我很确定
beforeunload在 iOS 上的 Safari 上不起作用。 :-( 也许不是你要找的东西,但我有一个关于如何reliably test for a workingbeforeunload的建议 -
2016 年 3 月 3 日,
window.onbeforeunload = function(event) { event.returnValue = 'test'; }不适用于 iOS 9.2.1 的 Chrome 和 Safari。我很喜欢onbeforeunload因为点击取消后页面没有变化。 -
看来这个问题在 Safari 和 iOS 13 中已经解决了
标签: javascript ios ipad onbeforeunload