我在onbeforeunload事件中如何防止浏览器选项卡/窗口关闭?

时间:2015-11-11 21:12:49

标签: javascript

我想显示自定义 您确定要在window.onbeforeunload事件中保留此页面吗? 对话框(在ExtJs中)。我很熟悉如果我从这个方法返回一个字符串,它会显示一个"浏览器"弹出返回的消息;但是,我根本不想要常规弹出窗口。

现在,问题是只要window.onbeforeunload函数完成执行,ExtJs对话框或屏幕上的任何内容都不再重要,浏览器选项卡将关闭。我尝试了stopImmediatePropagationstopPropagation方法并将cancelBubble属性设置为true。然而,似乎没有任何作用。对不起,我甚至不知道他们是否应该工作。

以下是代码:

window.onbeforeunload = function(e){

    Ext.Msg.show({
        title:'Warning',
        msg: 'Are you sure?',
        buttons: Ext.Msg.YESNO,
        icon: Ext.Msg.QUESTION,
        fn: function (btn) {
            if (btn == 'yes') {
                //Close Browser Window
            }
        },
        modal: true
    });

    //A desperate attempt to stop window/tab from closing
    e.stopPropagation();
    e.cancelBubble = true;
    e.stopImmediatePropagation();

    //This brings up default browser pop up
    //return 'Message';
};

对不起,我无法创建Sencha Fiddle,因为它拥有自己的确认导航对话框。

我想知道是否有可能实现这个目标?如果是,那怎么办?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

这是一个explanation关于这个做出自定义(extjs等)对话框的选择