据我所知,这是一个IE特定的问题,我在IE9中遇到过它。
如果您查看此jsFiddle:http://jsfiddle.net/dvrcthewrld/uaP3v/17/ 你可能会发现它在框架中工作正常。也就是说:只有当模态可见时,单击偏移div或叠加div会导致history.back事件,导致模态消失。
<div id="dbw" name="dbw" class="dumbBoxWrap">
<div class="dumbBoxOverlay" onclick="history.back()" >
</div>
<div class="vertical-offset" onclick="history.back()" >
<div class="dumbBox" onclick="event.stopPropagation ? event.stopPropagation() : (event.cancelBubble=true)
;">
<p>Content goes here</p>
</div>
</div>
</div>
但是,如果您查看它已满,而不是在框架中: http://fiddle.jshell.net/uaP3v/18/show/ 然后你会发现IE9适当地改变了url,但是模态并没有像预期的那样消失。无论是通过单击div还是使用浏览器的后退按钮触发后退事件,都会发生这种情况。
这似乎是IE9中的一个错误,我也假设早期版本。如果没有彻底修改我的代码,是否有适当的方法来处理这个问题?
答案 0 :(得分:1)
这是一个hacky解决方案,但似乎有效
window.onhashchange = function(){
document.body.className = document.body.className + "";
}
正在运行示例:jsFiddle