跨浏览器 Onunload 和 Onbeforeunload ? (尤其是歌剧 11)
Posted
技术标签:
【中文标题】跨浏览器 Onunload 和 Onbeforeunload ? (尤其是歌剧 11)【英文标题】:cross-browser Onunload and Onbeforeunload ? (particularly opera 11) 【发布时间】:2011-01-13 17:39:01 【问题描述】:我有一个表单,当表单中有数据尚未发送时,我必须在退出页面上用 alert() 通知用户。
我听说歌剧在这方面有很多问题。也就是 Opera 11,因为我只需要考虑最后一个版本。
同样,警报应该在刷新、关闭选项卡或关闭整个浏览器时显示。
最好将事件直接设置为 <form>
元素,该元素将在任何导致破坏该元素的东西上启动。
【问题讨论】:
onbeforeunload in Opera的可能重复 【参考方案1】:Opera 还不支持 onbeforeunload。 Opera 的 onunload 支持不完整 - 例如,当您关闭选项卡或关闭 Opera 时它不会触发。据我所知,虽然您可以使用 onunload 在用户单击链接以导航离开带有未保存表单的页面时显示警告,但是当 unload 事件触发时,您无法阻止导航发生。
我在这里要做的是监听 onbeforeunload 事件,让它在其他浏览器中工作并等待 Opera 赶上。我不知道它是在 Opera 12 还是 13 还是 15 中,但是当实现 onbeforeunload 时,它将像在其他浏览器中一样工作。
【讨论】:
另外,Mobile Safari 不支持 onbeforeunload,所以如果您有任何移动用户,那么您可能需要寻找其他解决方案。onbeforeunload
现在在基于 Webkit 引擎的 Opera 15 中得到支持!【参考方案2】:
Disable Close 还不能帮助你,因为 Opera 目前不支持 window.onbeforeunload。将来的某个版本将支持它。目前,Opera 11 没有实现它。
【讨论】:
【参考方案3】:从 Opera 15 开始支持 onbeforeunload !
【讨论】:
【参考方案4】:JQuery 框架只是一种精简的 javascript 语言,因此它完全取决于您使用的浏览器,这里没有魔法。
【讨论】:
这对这个问题有什么帮助?以上是关于跨浏览器 Onunload 和 Onbeforeunload ? (尤其是歌剧 11)的主要内容,如果未能解决你的问题,请参考以下文章