像往常一样,我想在离开页面时提醒用户注意未保存的更改。我有这个测试页:
<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 的原因两个 <script> 标签)。我试过从脚本标签中删除“src=”属性。
另一方面,此页面有一个确实有效的示例(至少在 Firefox 中):
http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm
MSDN 上也有一个非常相似的示例,它也有效:
http://msdn.microsoft.com/en-us/library/ms536907%28VS.85%29.aspx
我真的看不出他们所做的和我正在做的有什么区别。谁能告诉我为什么他们的代码有效而我的无效?