web-dev-qa-db-ja.com

Internet ExplorerはpushStateとreplaceStateをサポートしていますか?

Internet Explorerが ブラウザの履歴を操作するhistory.pushState()およびhistory.replaceState()メソッドをサポートするかどうかを知っていますか?これらがFirefox 4に実装されたばかりであると考えると、息が止まりませんが、IE9に登場するかどうかは誰にもわかりませんか?

140
David Johnstone

おそらく、ブラウザの互換性情報に最適なサイトは CanIUse です。ここに history に関するセクションがあります。

要約-IE9:noIE10: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をサポートします!詳細

194
dave1010

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に追加することです

17

Internet Explorer 10では、HTML5ドラフト仕様のHistoryインターフェイスのサポートが導入されています。これには、サイトの履歴スタックとURLを管理できるメソッドが含まれています。

元のリンク: https://msdn.Microsoft.com/en-us/library/ie/hh920758(v = vs.85).aspx

0
QC-cheetah

ところで、pushState()の絶対パスの理由でこのようなエラーが発生する可能性があります。相対パスを設定すると、エラーが消えました。

0
f0rmat1k