javascript
  • popup
  • 2017-03-10 56 views 0 likes 
    0

    我知道每个人都讨厌这些。但我有一个退出弹出窗口,它的作用是如何让它从一件事情中脱离出来。我想知道如何将消息添加到弹出窗口而不是只是说'你想离开这个网站吗? - 您所做的更改可能无法保存。这是我的代码。 (对不起,格式不对)自定义退出流行文本

    <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> 
    

    甚至有可能这样做吗?我可以更改两行提示文字吗?请让我知道如果有人可以帮忙。提前致谢。

    +0

    嵌套beforeunload与它里面重定向?你不能在onbeforeunload中重定向浏览器....并且brosers删除了设置文本的能力。 – epascarello

    +0

    @epascarello你能想出更好的方式来写这个吗? –

    +0

    无法阻止浏览器退出。所以不行。 – epascarello

    回答

    2

    您使用能够设置在onbeforeunload对话框中自定义文本,但在大多数新的浏览器,你就再也没有看到:

    与Firefox 4,Chrome的51起,歌剧38和Safari 9.1,将显示不在网页控制下的通用字符串,而不是返回的字符串。例如,Firefox显示字符串“此页面要求您确认您要离开 - 您输入的数据可能无法保存。”请参阅bug 588292Chrome Platform Status

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

    (来源:MDN: window.onbeforeunload

    +0

    谢谢@frxstrem –

    相关问题