像往常一样,我想在离开页面时提醒用户注意未保存的更改。我有这个测试页面:
<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
我真的看不出他们做什么和做什么之间的区别。任何人都可以告诉我为什么他们的代码有效而我的代码没有?
答案 0 :(得分:1)
使用jQuery绑定功能..它对我很有用..
见下文
$(window).bind('beforeunload', function() {
return "Want to leave?";
});
答案 1 :(得分:0)
您有语法错误,该函数应为:
function moveAway () {
return "foo";
}
答案 2 :(得分:0)
onbeforeupload
,真的吗?它应该是onbeforeunload
。这是拼写错误,还是你的实际代码是什么?