次の方法で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 でテストすると、次の警告のようなメッセージが表示されます。
ブラウザでは次のように表示されますが、ポップアップのURLは私が期待しているものです
http://www.foobar.com/.../#?Fixed
つまり、追加のハッシュを使用します。しかし、私が心配しているのはエラーメッセージです - 手がかりはありますか?