Javascript onbeforeunload与确认一起出现故障
我编写了一些代码,当用户离开页面时,应该会触发一个确认对话框。如果用户提供确认,则应出现一个弹出窗口;否则就不应该了。然而,onbeforeunload位没有启动——我不明白为什么。很明显,我是一个JavaScript新手Javascript onbeforeunload与确认一起出现故障,javascript,Javascript,我编写了一些代码,当用户离开页面时,应该会触发一个确认对话框。如果用户提供确认,则应出现一个弹出窗口;否则就不应该了。然而,onbeforeunload位没有启动——我不明白为什么。很明显,我是一个JavaScript新手 window.onbeforeunload = function () { if (confirm("Would you like to take a short survey?")) { w = 1000; h = 1000;
window.onbeforeunload = function () {
if (confirm("Would you like to take a short survey?")) {
w = 1000;
h = 1000;
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
window.open('http://www.google.com','toolbar=0,resizable = 1, scrollbars = 1, width='+w+',height='+h+', top ='+top+', left='+left);
}
}
自2011年5月25日起,HTML5规范规定,在此事件期间可能会忽略对window.alert()、window.confirm()和window.prompt()方法的调用。有关更多详细信息,请参阅HTML5规范
资料来源:
函数应返回要在确认对话框中显示的文本:
window.onbeforeunload = function(e) {
return 'You are leaving this page.';
};
但它不一定适用于所有浏览器。这并不是说没有启动
onbeforeunload
处理程序,有些浏览器在onbeforeunload
处理程序中,因此在您的函数中没有任何可执行的内容。@Teemu,您推荐什么解决方法?如果访问者想离开页面,请在页面上提供一个指向调查的链接,让他们来吧,我明白了。Mozilla网站上的开发人员文档建议将addEventListener与beforeunload结合使用,那么是这样的吗?addEventListener(“beforeunload”,function(){//code});是的,你可以在这里找到例子