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

$(window).on('popstate') is not working in IE

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

$(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);
}