跨浏览器Onunload和Onbeforeunload? (特别是歌剧11)

时间:2011-01-13 17:39:02

标签: javascript forms cross-browser opera onunload

我有一个表单,我必须注意用户在退出页面上有alert(),而表格中有数据尚未发送。

我读过歌剧有很多问题。 Opera 11也就是说,因为我只需考虑最后一个版本。

因此,警报应该在刷新,关闭选项卡或关闭整个浏览器时显示。 将事件直接设置到<form>元素会很好,这个元素会在任何导致破坏这个元素的东西上启动。

4 个答案:

答案 0 :(得分:19)

Opera尚不支持onbeforeunload。 Opera的onunload支持不完整 - 例如,当您关闭选项卡或关闭Opera时它不会触发。据我所知,虽然如果用户点击链接导航远离具有未保存表单的页面,您可以使用onunload显示警告,但是当卸载事件触发时,您无法阻止导航发生。 / p>

我在这里要做的是听取onbeforeunload事件,使其在其他浏览器中工作并等待Opera赶上。无论是在Opera 12还是13或15中我都不知道,但是当onbeforeunload实现时,它将像在其他浏览器中一样工作。

答案 1 :(得分:1)

Disable Close对你没有帮助,因为Opera目前不支持window.onbeforeunload。它将在未来的某个版本中得到支持。目前,Opera 11没有实现它。

答案 2 :(得分:1)

从Opera 15开始支持

onbeforeunload!

答案 3 :(得分:-5)

JQuery框架只是一种精简的Javascript语言,因此它完全取决于您使用的浏览器,这里没有任何魔力。