onbeforeunload事件没有在我的代码中触发,但其他示例有效吗?

时间:2012-08-31 08:18:38

标签: javascript onbeforeunload

像往常一样,我想在离开页面时提醒用户注意未保存的更改。我有这个测试页面:

<html>
<head>
<title>Testing</title>
<script language="JavaScript1.1" src="https://127.0.0.1:8443/scripts/base.js"></script>
<script language="JavaScript1.1" src="https://127.0.0.1:8443/scripts/edit.js"></script>
<script language="JavaScript1.1">window.onbeforeupload=moveAway</script>
</head>
<body onLoad="init()">
<a href="http://www.google.com">Google</a>
</body>
</html>

moveAway函数在“edit.js”中定义如下:

function moveAway ()
  return "foo";<br>
}

事件不会触发,或者至少它只是静静地离开页面(使用IE8,Firefox 15和Chrome 20)。我已经尝试在Firebug中对函数进行破坏,并且它永远不会到达断点。我已经从Web服务器(一个SSL服务器,其测试版本运行在127.0.0.1:8443)尝试过,我尝试直接用浏览器打开文件(这就是我为第一个使用绝对URL的原因)两个&lt; script&gt;标签)。我试过从脚本标签中删除“src =”属性。

另一方面,这个页面有一个可行的例子(至少在Firefox中):

http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm

在MSDN上也有一个非常类似的例子也适用:

http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx

我真的看不出他们做什么和做什么之间的区别。任何人都可以告诉我为什么他们的代码有效而我的代码没有?

3 个答案:

答案 0 :(得分:1)

使用jQuery绑定功能..它对我很有用..

见下文

$(window).bind('beforeunload', function() { 

    return "Want to leave?";
});

答案 1 :(得分:0)

您有语法错误,该函数应为:

function moveAway () {
    return "foo";
}

答案 2 :(得分:0)

onbeforeupload,真的吗?它应该是onbeforeunload。这是拼写错误,还是你的实际代码是什么?