windows.onbeforeunload - 有没有办法在离开/逗留之前调用一个函数?

时间:2014-03-28 20:22:04

标签: javascript html onbeforeunload

我正在尝试询问他是否真的要离开播放YouTube视频的页面。但在问“你确定要离开页面吗?”之前,我想暂停视频。 我尝试使用这段代码(而不是暂停视频,我只是在div中写一些东西),但div的内容只有在用户决定留在页面后才会改变...有没有办法解决它?

    <script>
        var confirmOnLeave = function(msg) {
            window.onbeforeunload = function (e) {          

                e = e || window.event;
                msg = msg || '';
                document.getElementById('test').innerHTML = 'stop'; 
                // For IE and Firefox
                if (e) {e.returnValue = msg;}

                // For Chrome and Safari
                return msg;
            };

        };
        confirmOnLeave('Are you sure to leave the page ?');
    </script>
   <body>
    <div id='test'> a </div>
    </body>

jsfiddle:http://jsfiddle.net/Yrs47/

谢谢,

1 个答案:

答案 0 :(得分:1)

不 - “按设计工作。”

当天早些时候,很多网站都会滥用onbeforeunload来做一些事情 - 重新加载当前页面,打开一大片弹出窗口或者只是取消导航。

现在 - 你可以做一个半可控制的动作。使用Javascript,您可以连接到页面上的每个link并打开对话框并询问他们想要做什么。这可能会满足您的一些需求,但它不会让人们打开书签,点击back按钮或输入新的URL。