如何在卸载前向用户显示提示框?

时间:2015-04-16 13:52:53

标签: javascript

我想问用户他离开之前为什么要离开我的页面。我试过了:

window.onbeforeunload = function() {
   var answer = prompt("Why do you leave?", "");
   if (answer != null) {
       send(answer);
   }
}

但它不起作用。有两个问题:我应该弄清楚如何向用户显示提示框,以及如何将他的答案发送到服务器。你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是不可能的。

来自Mozilla documentation

  

自2011年5月25日起,HTML5规范声明在此事件期间可能会忽略对window.alert(),window.confirm()和window.prompt()方法的调用。有关更多详细信息,请参阅HTML5规范。

您可以做的最好的事情是要求用户确认。这可以通过在onbeforeunload方法中返回一个字符串来实现:

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};