后退按钮第一次不改变哈希值

时间:2012-10-15 11:14:00

标签: jquery jquery-plugins browser-history jquery-bbq

我的问题就像this one,但我的问题不在于IE(未经过测试),而是在Chrome和Firefox中。无论如何,这个问题没有回应。

我正在使用BBQ plugin,代码为:

  $(window).bind('hashchange', function(e) {

            var href = $.param.fragment();

            hrefOld = $("#loadZone").attr("src");
            centerZoneActivePage = href;

            // Create container for this url's content and store a reference to it in
            // the cache.
            cache[ href ] = $("#loadZone").attr("src", href);
            alert("new: " +href);
   });

   // Since the event is only triggered when the hash changes, we need to trigger
   // the event now, to handle the hash the page may have loaded with.
   $(window).trigger( 'hashchange' );

正在发生的事情是,当我在iframe(“#loadZone”)中加载新页面时,哈希正在正确更改。但是,当我单击浏览器后退按钮时,前一页面正在加载,但不会更改哈希值。第二次单击时,哈希更改和活动页面在iframe中维护。我不明白为什么哈希第一次没有改变,就像上一页加载一样。

注意:警报消息仅在后退按钮单击时第二次出现。

后退按钮点击摘要:

  • 首先点击:加载了iframe上一页,未显示警报消息,哈希未更改;
  • 第二次点击:Iframe页面仍然相同,显示警报消息,更改散列。

如何同步? 我正在使用jquery-1.7.1.js。任何人都使用这个版本的BBQ插件,成功了吗?我读过this question,但它没有定论。

1 个答案:

答案 0 :(得分:0)

好吧,我解决了这个问题,删除iframe并在每次需要页面加载时创建一个新iframe。不漂亮,但解决了。不知何故,iframe与历史控制相冲突。