我有一个 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中点击后退按钮时,这并没有被触发。我没有读到任何东西表明这应该是这样的。这里有什么问题吗?
2条答案
按热度按时间brqmpdu11#
只要与页面有初始交互,这段代码也可以在后退按钮上工作。
注意:为了防止不需要的弹出窗口,浏览器可能不显示beforeunload事件处理程序中创建的提示,除非页面已经与之交互,甚至可能根本不显示它们。
这是来自https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
odopli942#
编辑:
第一个
我认为事件是onbeforeunload
用这个,在我的机器上试过了,很管用.