如何实现在浏览器或页面关闭时对用户提示

尝试使用window.onbeforeunload事件中对话框的自定义文案未生效

使用了mdn提供的参考代码,并且保证了页面有交互元素,代码如下:

<body>
  关闭浏览器触发
  <input type="text">
  <script>
      window.onbeforeunload = function (e) {
        e = e || window.event;
        // 兼容IE8和Firefox 4之前的版本
        if (e) {
          e.returnValue = '关闭提示';
        }
        // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
        return '关闭提示';
      };
    </script>
</body>

但是在我所安装的浏览器上均未产生期望结果:

  • safari Version 11.0.1 (13604.3.5)

  • chrome Version 62.0.3202.94 (Official Build) (64-bit)

  • firefox 57.0 (64 位)

在三个浏览器下,表现基本一致:

clipboard.png

有朋友已经指点在最新的浏览器中不再支持这种自定义对话框文案的方法了,浏览器会弹出系统默认的提示文案

其他解决方案

不知有人有其他解决方案吗 :)

阅读 14.6k
2 个回答

MDN上的一句话:

从Firefox 4、 Chrome 51、Opera 38 和Safari 9.1开始,通用确认信息代替事件返回的字符串。比如,火狐上会显示“本页面要求您确认您要离开 - 您输入的数据可能不会被保存”

发现在谷歌浏览器中,f5 刷新能够出现提示,但是浏览器左上角的刷新按钮只有第一次打开浏览器的时候点击刷新才会有提示,关闭后再次点击刷新不会再出现提示。关闭浏览器也不会有提示...Google Chrome版本 61.0.3163.79(正式版本) (64 位)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题