$(window).on('popstate')在IE中不起作用 [英] $(window).on('popstate') is not working in IE

查看:71
本文介绍了$(window).on('popstate')在IE中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

$window 'popstate' event is not working in IE on browser back button. Below is the code snippet which is getting used to remove some modal classes on back button.

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

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

Issue - when Modal is open and on click of browser back button trying to remove modal classes on previous page which is coming after click of browser back button.

在chrome中可以正常工作,但在IE中不会进入"popstate"
任何其他删除浏览器后退"按钮上的类的方法将受到赞赏.

In chrome it is working fine but in IE it's not going inside 'popstate'
Any other way to remove classes on browser back button will be appreciated.

推荐答案

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

You can try using hashchange event instead on IE like:

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

这篇关于$(window).on('popstate')在IE中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆