我们正在使用jscrollpane在单击哈希锚点(#
)时浏览一些div。在Chrome中单击后退按钮时,地址栏中的URL会发生变化,但浏览器不会导航回div。在Firefox中,它会回到之前的div。
http://www.sandbox.brightboxstudios.com/swings/test4.html
我尝试了各种各样的东西,包括插件,不同的jquery库版本。
此外,我尝试将活动菜单项更改为活动的所有内容在url锚点上都没有用,很可能是因为我缺乏javascript知识。这也很棒!
答案 0 :(得分:1)
我尝试了对代码进行此代码修复:
$('ul.nav a')
.unbind("click") // to remove your binding in my console
.bind('click',function(event){ // rebind event handler
var $anchor = $(this);
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, 1500,'easeInOutExpo');
event.preventDefault();
// this is a trick:
location.href = $anchor.attr('href');
return false;
});
导航开始工作。亲自尝试一下。
答案 1 :(得分:0)
我发现有一个问题几乎肯定会影响事情。
在你的javascript中的某个地方,哈希锚点前面带有正斜杠,使得生成的url看起来像这样:
http://www.sandbox.brightboxstudios.com/swings/test4.html#/section3
请注意 #
哈希之后的正斜杠,使其成为技术上无效的网址(没有值#/section3
的ID或名称)。当我将鼠标悬停在链接上时,这不会出现在状态栏中,只会出现在结果网址中,这会让我相信它与您正在使用的address插件有关(尽管我没有个人经验)
当前一个URL没有哈希值(即有效网址)时,后退按钮仅在我的Firefox中工作。我很难用所有加载的插件调试你的页面,但看看你是否可以做些什么来使这些URL有效并摆脱正斜杠。
除此之外,即使它只是一个演示,你应该确保你没有复制id
。您有#header
和#middle
多次出现。最好在调试时(或者总是,实际上)删除所有疑问并使用有效的标记。
希望这能让你更接近解决问题。