0

私の質問はこのようなものですが、私の問題は IE (テストされていません) ではなく、Chrome と Firefox にあります。とにかく、その質問には答えがありません。

私はこのコードでBBQ プラグインを使用しています:

  $(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」) に新しいページをロードしているときに、ハッシュが正しく変化しています。しかし、ブラウザの戻るボタンをクリックすると、前のページが読み込まれますが、ハッシュは変更されません。2 回目にクリックすると、ハッシュが変更され、アクティブなページが iframe に保持されます。以前のページの読み込み時に、最初にハッシュが変更されない理由がわかりません。

注: 警告メッセージは、[戻る] ボタンをクリックしたときに 2 回目にのみ表示されます。

戻るボタンのクリックの概要:

  • 最初のクリック: iframe の前のページが読み込まれ、警告メッセージは表示されず、ハッシュは変更されません。
  • 2 回目のクリック: iframe ページは同じままで、アラート メッセージが表示され、ハッシュが変更されます。

これを同期する方法は?jquery-1.7.1.js を使用しています。このバージョンで BBQ プラグインを使用して成功した人はいますか? この質問を読みましたが、決定的ではありません。

4

1 に答える 1

0

さて、私は問題を解決し、iframe を削除し、ページの読み込みが必要になるたびに新しいものを作成しました。きれいではありませんが、解決しました。どういうわけか、iframe は履歴管理と競合していました。

于 2012-10-15T21:30:32.237 に答える