各位,我试着在onbeforeunload事件上调用这个确认函数,但是它没有被调用。这里我漏掉了什么?
我在body标记中调用这个:<body onbeforeunload="confirmation();">
我也试过了:<body onbeforeunload="return confirmation();">
代码:
function confirmation(){
var answer = confirm('You have unsaved changes!!');
if(answer == true)
{
alert('Bye Bye!!!');
}
else{
alert('You are staying');
return false;
}
}发布于 2011-06-03 02:13:21
这不是onbeforeunload的工作方式,而且代码包含语法错误。
window.onbeforeunload = function (e)
{
var e = e || window.event,
message = 'You have unsaved changes!!';
// For IE and Firefox prior to version 4
if (e)
{
e.returnValue = message;
}
return message;
}发布于 2011-06-03 04:15:09
所以。当用户在您的页面上进行更改时,您正在尝试要求用户进行确认,如果用户离开页面,这些更改将不会被保存。对吗?
如果是这样,那么该似乎是可能的。在这样的情况下,尝试以下操作。开始编写此问题的答案,然后尝试关闭浏览器窗口。
我在Chrome 12,FF 4.0.1和IE 9上测试过。
这3个浏览器都显示了一个弹出窗口。它们似乎都包含一个自定义文本。Chrome显示最干净的消息,意味着只有自定义消息和2个按钮的弹出窗口。
在所有3个浏览器中,试图以任何正常方式关闭浏览器都会触发一个弹出窗口,允许用户选择是否愿意停留在页面上并完成他开始的内容。如果他真的想离开,他可以。(终止浏览器进程或关闭计算机可能不会如您所愿:)。
Internet Explorer:

Firefox:

Chrome:

我会尝试连接一个函数,该函数向window.onbeforeunload事件返回一个字符串。试试this:
<script>
window.onbeforeunload = function (evt) {
var message = 'You have started writing or editing a post.';
if (typeof evt == 'undefined') {
evt = window.event;
}
if (evt) {
evt.returnValue = message;
}
return message;
}
</script>https://stackoverflow.com/questions/6218468
复制相似问题