据我所知,这是一个特定于 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 中的一个错误,我也假设是早期版本。有没有适当的方法来处理这个问题而无需大幅修改我的代码?