【问题标题】:IE9 Back button not working properly with anchor divsIE9 后退按钮无法与锚 div 一起正常工作
【发布时间】:2013-02-15 14:36:21
【问题描述】:

据我所知,这是一个特定于 IE 的问题,我在 IE9 中也遇到过。

如果您查看此 jsFiddle:http://jsfiddle.net/dvrcthewrld/uaP3v/17/ 您可能会发现它在框架中运行良好。也就是:只有当modal可见时,点击offset div或者overlay div都会触发history.back事件,导致modal消失。

<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 适当地改变了 url,但是 modal 并没有像预期的那样消失。无论是通过单击 div 还是使用浏览器的后退按钮触发后退事件,都会发生这种情况。

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

【问题讨论】:

    标签: javascript internet-explorer onclick internet-explorer-9 browser-history


    【解决方案1】:

    这是一个 hacky 解决方案,但它似乎有效

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

    运行示例:jsFiddle

    【讨论】:

    • 是的,这行得通。当它很简单时,我不介意hacky。此外,这不就是 ie 的编码就是针对 hacky 产品的 hacky 解决方案吗?我将在浏览器为lte IE9 的条件下将其添加到我的脑海中以加载。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多