History.js は,ブラウザヒストリ・ステート用 API (pushState 等) のブラウザ間非互換性を解消したり,(IE 9 以下など) pushState に対応していないブラウザでも hash を利用して擬似的に state の遷移ができるようにしたり,と便利なライブラリです。 ですが,いろいろとはまったことがありました。 IE (等,エミュレーション実装) で戻った時にステートが反映されない まず,以下のような状況で困りました。 History.js を利用したページ (A) をロード pushState(B) pushState(C) リンク等により History.js を利用していないページ (D) に遷移 ブラウザの「戻る」ボタン等で戻る 正しい挙動はステート C になること (で,もちろん Chrome や Firefox ではそうなる) なのですが,IE 9