3

HTML5 ブラウザーと IE8/9 で History.js を正常に使用していますが、html4+html5 jQuery バージョンを使用しているにもかかわらず、ie6/ie7 では機能しません。

次のコードでは、メイン ページから通常のリンクをクリックし、[戻る] ボタンをクリックしてメイン ページに戻ると、state.data が復元されることを期待しています。

メイン ページには、フォームを送信することによって呼び出される次のコードが含まれています。

if (window.History && window.History.enabled) {
  var vars = {};
  var tables = {};
  vars['something'] = 'value';
  History.replaceState({vars: vars, tables: tables}, null, window.location.href.match(/^([^#]*)/)[1]);
}

このページには、次のような onload 関数があります。

var state = History.getState();
var data = state.data;

    if (data.vars) {
          alert('success!');
    }

IE6/IE7 では成功とは表示されませんが、私が試した他のブラウザでは問題なく動作します。

明らかに欠けているものはありますか、または続行する方法についてアイデアがありますか? 縮小されていないバージョンの history.html4.js と history.js をデバッグしてみましたが、やり取りの微妙なところがわかりません。

ご協力いただきありがとうございます。

4

1 に答える 1

0

History.js は互換性のあるブラウザーに (html5 のみ) を使用し、このイベントをサポートする html4 ブラウザーには "#hash" をonHashChange使用するため、イベントをサポートしていないブラウザーで History.js を動作させることは決してないと確信しています。pushStateie9 でさえ、pushState の代わりにハッシュを使用します。しかし、繰り返しになりますが、ie6 も ie7 もハッシュ イベントをサポートしていません。

于 2013-03-14T14:21:00.227 に答える