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


140

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


3
IE9がこれを追加しない場合、確かに憂鬱。
Eric Wahlforss、2010年

18
それだけの価値がある場合、History.jsは同じHTML5 APIを提供しますが、それをサポートしないすべてのブラウザー(データとタイトルのサポート、replaceState機能を含む)を適切に機能低下させます。これを使用すると、IE9の変更に合わせてコードを変更する必要がなくなります。
balupton 2011年

2
一方、ハッシュにフォールバックすることに反対する人もいます。danwebb.net/2011/5/28/it-is-about-the-hashbangs
デビッドジョンストーン

1
@CHiRiLo:jQueryへの参照を含める必要があります。これは、広く使用されているGoogleのJavaScriptライブラリであり、WebサイトでJavaScriptを使用すると作業が非常に簡単になります。
畏敬の念

5
GoogleはjQueryの主要な開発者ではありません(貢献した可能性があります)。ただし、CDNでホストします。
trojjer 2013年

回答:


196

おそらく、ブラウザの互換性情報に最適なサイトはCanIUseです。これが歴史のセクションです。

概要- IE9:いいえIE10:はい(プラットフォームプレビュー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のPlatform Preview 3が履歴APIをサポートします! 細部


今日の時点で、IE10の履歴にはバグがあり、役に立たないため、popstateイベントは発生しません。詳細はこちら:stackoverflow.com/questions/14698299/...
citykid

17

IE9はそれをサポートしていません。

ただし、ポリフィルを使用した回避策を使用して機能を取得することができます-History.js https://github.com/browserstate/history.js

Modernizrは、https: //github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-PolyfillsでHTML 5ポリフィルを一覧表示します。

警告は、HTML 4機能のみをサポートするブラウザーのURLにクエリ文字列を追加することです。


上記の質問のコメントの時点で、popstateはIE10で起動しません
Mandeep Jain

History.jsは、IE 9以下をサポートする必要がある場合に適したソリューションですが、23KBに縮小されています。これは、いくつかのメソッドをサポートするだけの場合はたくさんあります。
ニールモンロー


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.