后退按钮不在chrome中工作

时间:2011-05-23 05:43:30

标签: javascript jquery html google-chrome jscrollpane

我们正在使用jscrollpane在单击哈希锚点(#)时浏览一些div。在Chrome中单击后退按钮时,地址栏中的URL会发生变化,但浏览器不会导航回div。在Firefox中,它会回到之前的div。

http://www.sandbox.brightboxstudios.com/swings/test4.html

我尝试了各种各样的东西,包括插件,不同的jquery库版本。

此外,我尝试将活动菜单项更改为活动的所有内容在url锚点上都没有用,很可能是因为我缺乏javascript知识。这也很棒!

2 个答案:

答案 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多次出现。最好在调试时(或者总是,实际上)删除所有疑问并使用有效的标记。

希望这能让你更接近解决问题。