首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript onbeforeunload函数

Javascript onbeforeunload函数
EN

Stack Overflow用户
提问于 2011-06-03 02:09:43
回答 2查看 11.3K关注 0票数 1

各位,我试着在onbeforeunload事件上调用这个确认函数,但是它没有被调用。这里我漏掉了什么?

我在body标记中调用这个:<body onbeforeunload="confirmation();">

我也试过了:<body onbeforeunload="return confirmation();">

代码:

代码语言:javascript
复制
  function confirmation(){
  var answer = confirm('You have unsaved changes!!');
   if(answer == true)
    {
     alert('Bye Bye!!!');
    }
    else{
      alert('You are staying');
     return false;
    }
   }
EN

回答 2

Stack Overflow用户

发布于 2011-06-03 02:13:21

这不是onbeforeunload的工作方式,而且代码包含语法错误。

代码语言:javascript
复制
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;
}
票数 5
EN

Stack Overflow用户

发布于 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

代码语言:javascript
复制
<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>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6218468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档