javascript – window.onbeforeunload不能在iPad上工作?

有谁知道onbeforeunload事件是否支持iPad和/或如果有不同的方式使用它?

我已经尝试了几乎一切,似乎onbeforeunload事件从来没有触发iPad(Safari浏览器)。

具体来说,这是我试过:

> 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);

相应地,结果是:

> true
>对象
> null

所以,浏览器有属性,但由于某种原因,它不会被触发。

我尝试离开页面的方式是点击向后和向前按钮,通过在顶部栏中进行Google搜索,通过更改地址栏中的位置以及点击书签。

有没有人有什么发生了什么?我非常感谢任何输入。

谢谢

解决方法

我发现onunload()事件触发。它的行为有点奇怪;无论你在回调函数中附加的事件实际上是在新页面加载后在后台运行(你不能告诉它的加载,但服务器日志将显示它有)。

更奇怪的是,如果你在你的onunload()中有一个confirm()调用,并且用户已经点击了一个链接去别的地方,你是在商业。但是,如果用户关闭iPad Safari浏览器选项卡,onunload()事件将触发,但您的confirm()将作为响应进行隐式取消。

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...