backbone.js jQuery beforeunload事件未在后退按钮上触发

omqzjyyz  于 2022-11-10  发布在  jQuery
关注(0)|答案(2)|浏览(108)

我有一个 Backbone.js 应用程序,我想在导航离开之前提醒用户未保存的更改。我有一个事件来完成此操作:

$(window).bind('beforeunload', function() {
    var status = {
        unsavedEdits: false
    };

    Backbone.trigger('producerApp:navigate', status);
    if (status.unsavedEdits) {
        return status.msg || 'There are unsaved edits. Continuing will discard these edits.';
    }
});

问题是,在Chrome中点击后退按钮时,这并没有被触发。我没有读到任何东西表明这应该是这样的。这里有什么问题吗?

brqmpdu1

brqmpdu11#

只要与页面有初始交互,这段代码也可以在后退按钮上工作。

window.onbeforeunload = function(){
return "are you sure you want to navigate away?";
}

注意:为了防止不需要的弹出窗口,浏览器可能不显示beforeunload事件处理程序中创建的提示,除非页面已经与之交互,甚至可能根本不显示它们。
这是来自https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

odopli94

odopli942#

编辑:
第一个
我认为事件是onbeforeunload
用这个,在我的机器上试过了,很管用.

相关问题