Internet Explorerが ブラウザの履歴を操作する のhistory.pushState()
およびhistory.replaceState()
メソッドをサポートするかどうかを知っていますか?これらがFirefox 4に実装されたばかりであると考えると、息が止まりませんが、IE9に登場するかどうかは誰にもわかりませんか?
おそらく、ブラウザの互換性情報に最適なサイトは CanIUse です。ここに history に関するセクションがあります。
要約-IE9:no、IE10:yes(プラットフォームのプレビュー時点で3)
IE9の最初のリリース候補(2011年2月10日リリース)は、history.pushStateまたはhistory.replaceStateをサポートしていません。一般に、製品がRCステージに到達した後、新しい機能は追加されないため、最終的なIE9がこれらのメソッドをサポートすることはほとんどありません。
Microsoftには、IE9の優れた機能の 開発者向けの概要 があります。
更新:Internet Explorer 9が起動しました(2011年3月14日)、間違いなくはhistory.pushState()
をサポートしませんまたはhistory.replaceState()
。
更新2:現在のプラットフォームプレビュー IE10はpushState/replaceStateをまだサポートしていません 。
更新3:IE10のプラットフォームプレビュー3は履歴APIをサポートします!詳細
IE9はサポートしていません。
ただし、機能を取得するためにPolyfillを使用して回避策を使用できます-History.js https://github.com/browserstate/history.js 。
Modernizrは、ここでHTML 5ポリフィルのリストをうまく作成しています https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills 。
注意点は、HTML 4機能のみをサポートするブラウザのクエリ文字列をURLに追加することです
Internet Explorer 10では、HTML5ドラフト仕様のHistoryインターフェイスのサポートが導入されています。これには、サイトの履歴スタックとURLを管理できるメソッドが含まれています。
元のリンク: https://msdn.Microsoft.com/en-us/library/ie/hh920758(v = vs.85).aspx
ところで、pushState()の絶対パスの理由でこのようなエラーが発生する可能性があります。相対パスを設定すると、エラーが消えました。