firefox 32.0.3和IE中onbeforeunload处理程序/函数的意外行为

时间:2014-10-09 11:33:22

标签: javascript firefox browser confirm

我想在用户离开页面时显示一个确认框,然后在 onbeforeunload 处理程序/函数中使用其返回值,如

window.onbeforeunload = closingCode;
   function closingCode(){
   return confirm("You are leaving the page without saving some data. Do you want to continue?");
}

在上述版本的firefox中执行此功能时,窗口会直接关闭或刷新,而不会显示任何确认对话框。我试图用firebug调试脚本,这表明该函数已执行。

但是当我使用下面编写的代码时,会出现带有通用消息的内置浏览器确认对话框。

window.onbeforeunload = closingCode;
       function closingCode(){
       return false;
    }

在Internet Explorer 8中,第一个代码段会生成两个确认对话框。一个是我的,另一个是浏览器的默认值。而第二个片段表现相同。

我已经在stackoverflow中测试了这个功能,发现它还显示了一个带有相同通用消息的内置确认对话框。

是否可以在 onbeforeunload 处理程序/函数中显示带有所需消息的window.confirm()对话框?如果是,那么请告诉我如何。另外,请告诉我为什么它不可能并提供一些相关的链接。

1 个答案:

答案 0 :(得分:0)

onbeforeunload处理程序应该返回一个字符串。然后,浏览器将在提示符中显示此消息。

function closingCode () {
    return "You are leaving the page without saving some data. Do you want to continue?";
}