Javascript onbeforeunload与确认一起出现故障

Javascript onbeforeunload与确认一起出现故障,javascript,Javascript,我编写了一些代码,当用户离开页面时,应该会触发一个确认对话框。如果用户提供确认,则应出现一个弹出窗口;否则就不应该了。然而,onbeforeunload位没有启动——我不明白为什么。很明显,我是一个JavaScript新手 window.onbeforeunload = function () { if (confirm("Would you like to take a short survey?")) { w = 1000; h = 1000;

我编写了一些代码,当用户离开页面时,应该会触发一个确认对话框。如果用户提供确认,则应出现一个弹出窗口;否则就不应该了。然而,onbeforeunload位没有启动——我不明白为什么。很明显,我是一个JavaScript新手

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});是的,你可以在这里找到例子