在所有浏览器中,似乎只有Opera不支持onunload/onbeforeunload事件。(15年过去了,Opera!)这个问题的解决方案已经被多次提及,例如在这里:onbeforeunload support detection
不幸的是,截至到Opera 11.51版本,
我的Web应用程序需要在用户离开页面时向服务器发送数据;我正在使用同步ajax请求来实现。看起来我必须使用一个“保存”按钮来解决Opera的问题。然而,我不希望这个按钮会让那些浏览器通过ajax自动保存的用户感到困惑,所以我真的希望这个按钮只在Opera中出现。
我的唯一选择是浏览器检测吗?问题是,Opera有一个选项可以伪装成其他浏览器。
("onbeforeunload" in window) == true
,但实际上onbeforeunload事件从未执行!我的Web应用程序需要在用户离开页面时向服务器发送数据;我正在使用同步ajax请求来实现。看起来我必须使用一个“保存”按钮来解决Opera的问题。然而,我不希望这个按钮会让那些浏览器通过ajax自动保存的用户感到困惑,所以我真的希望这个按钮只在Opera中出现。
我的唯一选择是浏览器检测吗?问题是,Opera有一个选项可以伪装成其他浏览器。
onuload
? - c69body.onunload
在 Opera 11.5 中有效,除非您调用了window.location.reload()
。 - Lyth<body onunload = 'alert("test")'>
,body.onunload = function() {alert("test")};
和body.unload(function() {alert("test")});
在我的机器上都无法工作。我使用的是Opera 11.51,没有添加任何插件,操作系统为Windows 7 64位。 - Unknown artist<body onunload="alert('!')"><p onclick="window.location.reload();">点击这里重新加载</p><p><a href="http://ya.ru">Get away</a></p></body>
- 在这种情况下,我已经让onunload起作用了,当你离开页面时会弹出警告。无论如何,如果你关闭页面/应用程序,Opera不会执行代码,所以更好的方法可能是实现一些其他类型的数据保存。如何使用本地存储? - Lyth