2012-10-15 56 views
0

我的問題就像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。任何人都使用這個版本的燒烤插件,成功?我已閱讀this question,但它並不確定。

回答

0

那麼,我解決了這個問題,刪除iframe,並創建一個新的每次需要頁面加載。不漂亮,但解決了。不知何故,iframe與歷史控制有衝突。