在关闭标签上询问未保存的更改,然后重新加载页面 - 如何?

时间:2015-07-13 18:16:49

标签: javascript

我遇到了一个讨厌的网站,每次我试图关闭标签时都会设法刷新页面。基本上你不能关闭那个页面。我通过在该页面上禁用javascript来解决这个问题。

他们是如何做到的?

我在location.replace内尝试onbeforeunload并且它无法正常工作:

window.onbeforeunload = function(e) {
  window.location.replace(window.location.href);
};

以下是相关网页的来源,我不知道他们是如何做到的:

<script type="text/javascript">
        function c(b)
        {
            document.write(b);
        }

        function wrapped3(d)
        {
            return d.replace(/(.)(.)/g, '%$1$2');
        }

        function wrapped(b)
        {
            var tmp = window['decodeURI' + 'Component'];
            return tmp(wrapped3(b))
        }

        function show_page(a)
        {
            c(wrapped(a)
                .split('{{addr}}').join('//ip')
                .split('{{country}}').join('Great Britain')
                .split('{{region}}').join('London, City of')
                .split('{{city}}').join('London')
                .split('{{ltude}}').join('//latitude')
                .split('{{referrer}}').join('//url here')
            );
        }
        show_page('//long string here');
    </script>

1 个答案:

答案 0 :(得分:0)

window.onbeforeunload是正确的解决方案,这是一个例子:

viOpenDefaultRM

http://jsfiddle.net/SQAmG/3/