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

问题描述 投票:0回答:1

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

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

问题-打开模态并单击浏览器后退按钮时,尝试删除上一页的模式类,该类在单击浏览器后退按钮后出现。

在chrome中,它工作正常,但在IE中,它不在'popstate'内部任何其他删除浏览器后退按钮上的类的方法将受到赞赏。

javascript jquery internet-explorer bootstrap-modal back-button
1个回答
0
投票

您可以尝试在[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);
}
© www.soinside.com 2019 - 2024. All rights reserved.