我的网站使用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。我无法找到我所做的和它正在做的事情之间的功能差异。
答案 0 :(得分:0)
您需要使用rel属性。
<a href="/deep-link" rel="address:/deep-link">Deep link</a>
IE6 / IE7似乎尊重对此功能的使用。
这确实有副作用(即,REL的每个链接现在都有一个事件处理程序),这可能会也可能不会影响您的具体实现。
注意:如果你真的想回答这个问题,我会接受一个更加谨慎和解释的答案。