Beforeunload事件无法正常工作,我认为应该如此

时间:2013-12-13 12:55:07

标签: jquery onbeforeunload

我希望用户在尝试离开我的页面时会看到一条消息。我的页面包含一个表单和一些链接(菜单等)。我的jQuery代码如下

$(document).ready(function(){
    $(window).bind('beforeunload', function(e){
        answer=confirm('Do you want to go?');
        if (answer===false){
            e.preventDefault();
        }
    });
});

但是当我点击其中一个链接时,用户在页面外导航并且没有任何确认对话框。我误解了beforeunload事件吗?

1 个答案:

答案 0 :(得分:1)

不幸的是,没有办法覆盖默认行为。大多数浏览器只会显示事件的returnValue,并附带一个“确定”/“离开”页面'和'取消'按钮。您可以设置该消息:

window.onbeforeunload = function (e) {
        var e = e || window.event;
        // For IE and Firefox prior to version 4
        if (e) {
            e.returnValue = 'Hey, you are leaving. Do you want to continue?';
        }
        //you can do some last minute scripting here
        // For Safari
        return 'Hey, you are leaving. Do you want to continue?';
};

正如Jason P所建议的,read more on it here