IE6和IE7后退/前进哈希标签导航问题

时间:2011-03-21 19:03:56

标签: internet-explorer jquery-plugins navigation hashtag

我的网站使用jQuery Address plugin from Asual进行导航。

我遇到的问题是,使用IE6和IE7,当用户使用后退/前进按钮时,网站最终会出现意外页面。

这是我现在正在做的一个简化版本。

$.address.init(function(event) {
    defaultPage = "1";
}).change(function(event) {
    $("#content").html('<div><img src="/images/activity indicator.gif"></div>')
    $("#content").load("./pages/"+names+".html", function(){
    var names = $.map(event.pathNames, function(n) {
        return n.substr(0, 1).toUpperCase() + n.substr(1);
    }).concat(event.parameters.id ? event.parameters.id.split('.') : []);
        pageScripts[names]();
    });
});

如果我在页面/上,请转到#/1,转到#/2,然后转到页面#/3,我在第#/ 3页,没有任何问题任何一个。当我在页面#/3上点击IE6或IE7中的“返回”(Chrome,FF,IE8,IE9都工作正常)时,我会一直发送回页面/。点击向前移动我到页面/#3

它从哈希标签中跳过历史记录。

但是,example from the website可以正常使用IE6 / IE7。我无法找到我所做的和它正在做的事情之间的功能差异。

1 个答案:

答案 0 :(得分:0)

您需要使用rel属性。

<a href="/deep-link" rel="address:/deep-link">Deep link</a>

IE6 / IE7似乎尊重对此功能的使用。

这确实有副作用(即,REL的每个链接现在都有一个事件处理程序),这可能会也可能不会影响您的具体实现。

注意:如果你真的想回答这个问题,我会接受一个更加谨慎和解释的答案。