Javascript $(窗口).on(';popstate';)在IE中不工作
Javascript $(窗口).on(';popstate';)在IE中不工作,javascript,jquery,internet-explorer,bootstrap-modal,back-button,Javascript,Jquery,Internet Explorer,Bootstrap Modal,Back Button,$window'popstate'事件在IE浏览器后退按钮中不起作用。下面是用于删除back按钮上的一些模态类的代码片段 $(window).on('popstate', function(event) { event.preventDefault(); event.stopPropagation(); $('.modal-backdrop').remove(); $('body').removeClass( 'modal-open' ); }); 问题-打开模
$window'popstate'
事件在IE浏览器后退按钮中不起作用。下面是用于删除back按钮上的一些模态类的代码片段
$(window).on('popstate', function(event) {
event.preventDefault();
event.stopPropagation();
$('.modal-backdrop').remove();
$('body').removeClass( 'modal-open' );
});
问题-打开模式并单击浏览器后退按钮时,尝试删除上一页上的模式类,这是在单击浏览器后退按钮后出现的
在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);
}
当我在chrome中使用它时,我观察到一件事,点击后退按钮,它会捕获所有以前的事件,比如,如果我第一次点击后退,然后进入下一页,然后再次返回,它会调用函数2次,如果我点击后退,再次返回,它会被调用3次。我可以知道这有什么影响吗?我不认为这个问题与这个代码有关,因为在chrome中根本没有调用hashchange,只调用了popstate,这与您之前的代码完全相同。它工作正常。需要对上述问题再做一次澄清。有没有办法阻止上述行为。就像我点击后退按钮,第二次它会调用这个函数2次,第三次它会调用这个函数3次。有没有更好的方法来避免这种情况?请您为此创建一个单独的问题,这样就可以分离关注点,将来的用户可以在搜索so时获得特定问题的具体答案。并结合实例对问题进行了详细的说明。此外,请解释您在其上测试的所有浏览器详细信息。