0

这是一个IE特定的问题,据我所知,我一直在IE9遇到它。IE9后退按钮无法正常工作与锚div

如果你看到这个jsFiddle:http://jsfiddle.net/dvrcthewrld/uaP3v/17/ 你可能会发现它在框架中工作正常。也就是说:只有当模态可见时,单击偏移量div或叠加div会导致history.back事件,导致模态消失。

<div id="dbw" name="dbw" class="dumbBoxWrap"> 
    <div class="dumbBoxOverlay" onclick="history.back()" > 
     &nbsp; 
    </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相应地更改网址,但如预期的模式并没有消失。无论返回事件是由点击div还是使用浏览器的后退按钮触发,都会发生这种情况。

这似乎是在IE9中的一个错误,我也假设早期版本。有没有适当的方法来处理这个问题,而不需要大幅修改我的代码?

回答

1

这是一个哈克的解决方案,但它似乎工作

window.onhashchange = function(){ 
    document.body.className = document.body.className + ""; 
} 

运行例如:jsFiddle

+0

是啊,这工作。简单时我不介意哈克。此外,这不就是什么编码的全部是关于hacky产品的hacky解决方案吗? 我将这个添加到我的头上,在浏览器为'ie IE9'的条件下加载。 谢谢。 – David 2013-02-15 15:33:00