【问题标题】:Custom exit pop text自定义退出弹出文本
【发布时间】:2017-07-31 04:11:45
【问题描述】:

我知道每个人都讨厌这些。但是我有一个退出流行音乐,它可以按照我想要的方式工作,除了一件事。我想知道如何在弹出窗口中添加一条消息,而不仅仅是说“你想离开这个网站吗? - 您所做的更改可能不会被保存。这是我的代码。 (抱歉格式不好)

<script type="text/javascript">
  (function() {
    var __redirect_to = 'http://www.example.com';

    var _tags = ['button', 'input', 'a'], _els, _i, _i2;
    for(_i in _tags) {
      _els = document.getElementsByTagName(_tags[_i]);
      for(_i2 in _els) {
        if((_tags[_i] == 'input' && _els[_i2].type != 'button' && _els[_i2].type != 'submit') || _els[_i2].target == '_blank') continue;
        _els[_i2].onclick = function() {window.onbeforeunload = function(){};}
      }
    }
    window.onbeforeunload = function() {
      setTimeout(function() {
        window.onbeforeunload = function() {};
        setTimeout(function() {
          document.location.href = __redirect_to;
        }, 500);
      },5);
      return '1';
    }
  })();
</script>

甚至有可能做到这一点吗?我可以更改两行提示文本吗?请让我知道是否有人可以提供帮助。提前致谢。

【问题讨论】:

  • 嵌套 beforeunload 里面有重定向?你不能在onbeforeunload中重定向浏览器....并且brosers删除了设置文本的能力。
  • @epascarello 你能想出更好的写法吗?
  • 没有办法阻止浏览器退出。所以没有。
  • 谢谢@epascarello

标签: javascript popup


【解决方案1】:

您过去可以在 onbeforeunload 对话框中设置自定义文本,但在大多数较新的浏览器中您现在不能:

从 Firefox 4、Chrome 51、Opera 38 和 Safari 9.1 开始,将显示不受网页控制的通用字符串,而不是返回的字符串。例如,Firefox 显示字符串“此页面要求您确认是否要离开 - 您输入的数据可能不会被保存。”请参阅bug 588292Chrome Platform Status

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

(来源:MDN: window.onbeforeunload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2021-04-07
    • 2015-07-15
    • 1970-01-01
    相关资源
    最近更新 更多