使用`window.onbeforeunload`阻止用户导航

时间:2015-04-02 09:33:46

标签: javascript jquery

我正在尝试在用户点击后退前进刷新浏览器按钮时显示提醒,但我没有收到期望的输出...

<script type="text/javascript">
    $(document).ready(displayAlert());
    function displayAlert() {
        window.onbeforeunload = function () {
            return "Are you sure want to LOGOUT the session ?";
        };
    }       
</script>

1 个答案:

答案 0 :(得分:2)

WindowEventHandlers.onunload当窗口卸载其内容和资源时,会引发unload事件。在卸载事件发生后处理资源删除。

window.onunload = funcRef;

WindowEventHandlers.onbeforeunload当窗口即将卸载其资源时触发的事件。该文档仍然可见,事件仍然可以取消。

window.onbeforeunload = function(e) {
  return 'Dialog text here.';
};

IE在onload事件方面存在问题,Opera与onbeforeunload存在问题。因此,要找到一种解决方案来处理我遇到的情况user3253009 answer

/*Code Start*/
var myEvent = window.attachEvent || window.addEventListener;
var chkevent = window.attachEvent ? 'onbeforeunload' : 'beforeunload'; /// make IE7, IE8 compitable

myEvent(chkevent, function(e) { // For >=IE7, Chrome, Firefox
    var confirmationMessage = 'Cookies for you.. If you stay back!!?'; // a space
    (e || window.event).returnValue = confirmationMessage;
    return confirmationMessage;
});
/*Code End*/

Gist。希望它有所帮助!

更新

如果您想在用户离开您的页面时显示Bootstrap模式,那么您可以尝试以下内容:

window.onbeforeunload = function(event) {
    event.preventDefault();
    $('#cancel_modal').modal('show');
};