1

我有一个使用Asual 的 jQuery Address 插件进行导航的网站。

我遇到的问题是,使用 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]();
    });
});

如果我在 page /, goto #/1, goto #/2,然后 goto page #/3,我在第 #/3 页,没有任何问题。当我在 IE6 或 IE7(Chrome、FF、IE8、IE9 都可以正常工作)中点击“返回”页面时#/3,我会一直被发送回页面/。单击前进将我移至 page /#3

它会跳过哈希选项卡中的历史记录。

但是,网站上的示例适用于 IE6/IE7。我找不到我所做的和正在做的之间的功能差异。

4

1 回答 1

0

您需要使用 rel 属性。

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

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

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

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

于 2011-03-21T20:28:21.283 回答