0

私が知る限り、これは 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()" >
        &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を適切に変更することがわかりますが、モーダルは期待どおりに消えません。これは、div をクリックするか、ブラウザーの戻るボタンを使用して back イベントがトリガーされた場合に発生します。

これは IE9 のバグのようで、以前のバージョンも同様だと思います。コードを大幅に修正せずにこれを処理する適切な方法はありますか?

4

1 に答える 1

1

ハックな解決策ですが、うまくいくようです

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

実行例: jsFiddle

于 2013-02-15T15:16:22.163 に答える