1

次の方法でjQueryにHistory.jsを使用しています(v1.7.1、html4 + html5バンドル)

私のjsファイルの上部にある準備:

(function(window,undefined){

    // Prepare
    var History = window.History; // Note: We are using a capital H instead of a lower h
    if ( !History.enabled ) {
         // History.js is disabled for this browser.
         // This is because we can optionally choose to support HTML4 browsers or not.
        return false;
    }

    // Bind to StateChange Event
    History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
        var State = History.getState(); // Note: We are using History.getState() instead of event.state
        History.log(State.data, State.title, State.url);
    });

})(window);

次に、私のコードでさらに下に:

    $foo.click(function(e) {
        e.preventDefault();
        History.pushState({}, "", "?" + bar);
    });

基本的に私が達成したいのは、特定の項目がクリックされるたびに、クエリ文字列"?" + barが URL に追加され、pushState がそれをブラウザの履歴に保存することです。これは最新の FF では問題なく動作しますが、IE7 でテストすると、次の警告のようなメッセージが表示されます。

IE7 の History.js エラー ブラウザでは次のように表示されますが、ポップアップのURLは私が期待しているものです

http://www.foobar.com/.../#?Fixed

つまり、追加のハッシュを使用します。しかし、私が心配しているのはエラーメッセージです - 手がかりはありますか?

4

2 に答える 2

0

理由: コードから 'History.log()' を削除する必要があります... IE では、この History.log はアラートボックスにログ出力を書き込んでいます...

于 2013-01-25T14:11:46.987 に答える
0

記録のために、誰かがこのページで再び発生した場合-スクリプトを分離したところ、エラーは発生しなくなりました. 長くて退屈なテストの後、独自の jquery プラグインとの衝突が原因であることがわかり、修正しました。

于 2012-10-20T17:07:47.237 に答える