跨浏览器的Onunload和Onbeforeunload?(特别是Opera 11)

7

我有一个表单,当表单中有未发送的数据时,必须通过alert()提醒用户在退出页面时注意。

我已经阅读过,Opera在这方面存在很多问题。因为我只需要考虑最新版本的Opera 11。

所以,刷新、关闭标签页或整个浏览器时,警报应该显示。最好直接将事件设置到<form>元素上,以便在任何导致销毁此元素的情况下启动它。


4个回答

19

Opera目前还不支持onbeforeunload事件。Opera的onunload支持不完全 - 例如,当关闭标签页或关闭Opera时,它不会触发。据我所知,虽然可以使用onunload在用户单击链接以导航离开未保存表单的页面时显示警告,但无法防止导航在卸载事件触发时发生。

我的建议是监听onbeforeunload事件,在其他浏览器中使其正常工作,并等待Opera跟进。不知道它是否会在Opera 12、13或15中实现,但当onbeforeunload被实现后,它将像其他浏览器一样正常工作。


1
此外,移动版Safari不支持onbeforeunload事件,因此如果您有任何移动用户,则可能需要找到另一种解决方案。 - robocat
1
基于Webkit引擎的Opera 15现在支持onbeforeunload! - wojo

1

禁用关闭目前还不能帮助您,因为Opera目前不支持window.onbeforeunload。它将在未来的某个版本中得到支持。目前,Opera 11尚未实现它。


1

onbeforeunload自Opera 15版本开始被支持!


-5

JQuery框架只是压缩的Javascript语言,因此完全取决于您使用的浏览器,没有什么魔法。


3
这如何对问题有所帮助? - FastTrack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接