$(window).on('popstate') 在 IE 中不起作用



$window 'popstate'事件在浏览器后退按钮上的IE中不起作用。下面是用于删除back按钮上的一些模态类的代码片段。

$(window).on('popstate', function(event) {
event.preventDefault();
event.stopPropagation();
$('.modal-backdrop').remove();
$('body').removeClass( 'modal-open' );
});

问题-当Modal打开并单击浏览器后退按钮时,试图删除上一页上的模态类,这是在单击浏览器后退后出现的。

在chrome中,它运行良好,但在IE中,它不会进入"popstate">
任何其他在浏览器后退按钮上删除类的方法都将受到赞赏。

您可以尝试在IE上使用hashchange事件,例如:

function onHistoryChange(event) {
event.preventDefault();
event.stopPropagation();
console.log('On History Change');
$('.modal-backdrop').remove();
$('body').removeClass('modal-open');
}
if (window.document.documentMode) {
// This is IE, use hashchange instead
$(window).on('hashchange', onHistoryChange);
} else {
$(window).on('popstate', onHistoryChange);
}

最新更新