后退按钮不在IE上更新iframe中的哈希

时间:2012-05-30 18:59:26

标签: ajax back-button

我有一个应用程序,它使用onhashchange事件(对于新浏览器)和Ben Alman(对于旧浏览器)的hashchange插件的组合来跟踪历史记录,同时进行ajax调用或操作。在所有浏览器中都像魅力一样工作,后退和前进按钮让用户通过更改哈希来导航记录的操作。到现在为止还挺好。现在,我们的页面将托管在diff域(跨域)的客户端页面上的iframe中。 Chrome类型有效,但如果您在历史记录中进行了许多更改,它会在某些时候停止工作(我们可以接受它)。 IE根本不工作。当我通过单击链接导航我们的应用程序并更新哈希新的历史项目在父页面中创建时,但是当我点击后退按钮时,嵌套页面中的哈希值不会更新,因此哈希更改事件永远不会触发。有没有人解决过这个问题?非常感谢

初始化哈希更改事件处理

if ("onhashchange" in window && !($j.browser.msie && $j.browser.version == '7.0')) {
    window.onhashchange = function() {
        var params = parseHash(location.hash)

        if (params.tabId) {
            if (getSelectedTabId() == params.tabId) return;
            reloadPage(params.tabId);
        }
    };
}
else {// Plugin for older browsers
    $j(window).bind('hashchange', function() {            
        var params = parseHash(location.hash)
        if (params.tabId) {
            if (getSelectedTabId() == params.tabId) return;
            reloadPage(params.tabId);
        }
    });
}

0 个答案:

没有答案