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

相关文章