Unterstützt Internet Explorer pushState und replaceState?

140

Weiß jemand, ob Internet Explorer die history.pushState()und history.replaceState()Methoden zum Bearbeiten des Browserverlaufs unterstützt ? Wenn man bedenkt, dass diese nur in Firefox 4 implementiert werden, halte ich nicht den Atem an, aber weiß jemand, ob sie in IE9 kommen?

David Johnstone
quelle
3
In der Tat deprimieren, wenn IE9 dies nicht hinzufügt.
Eric Wahlforss
18
Für das, was es wert ist, bietet History.js dieselbe HTML5-API und verschlechtert gleichzeitig jeden Browser, der sie nicht unterstützt (einschließlich der Unterstützung von Daten und Titeln sowie der Funktion "replaceState"). Wenn Sie dies verwenden, müssen Sie Ihren Code für die IE9-Änderungen nicht ändern.
Balupton
2
Auf der anderen Seite sprechen sich einige dagegen aus, auf Hashes zurückzugreifen. danwebb.net/2011/5/28/it-is-about-the-hashbangs
David Johnstone
1
@CHiRiLo: Sie müssen einen Verweis auf jQuery einfügen . Dies ist eine weit verbreitete Javascript-Bibliothek von Google, die Ihnen das Leben bei der Arbeit mit Javascript auf Ihren Websites erheblich erleichtert.
Ehrfurcht
5
Google ist nicht der Hauptentwickler für jQuery (es könnte dazu beigetragen haben). es hostet es jedoch auf seinem CDN.
Trojjer

Antworten:

196

Die wahrscheinlich beste Website für Informationen zur Browserkompatibilität ist CanIUse . Hier ist der Abschnitt über die Geschichte .

Zusammenfassung - IE9: Nein , IE10: Ja (ab Plattformvorschau 3)

Der erste Release Candidate von IE9 (veröffentlicht am 10. Februar 2011) unterstützt history.pushState oder history.replaceState nicht. Im Allgemeinen werden keine neuen Funktionen hinzugefügt, nachdem ein Produkt die RC-Phase erreicht hat. Daher ist es sehr unwahrscheinlich, dass der endgültige IE9 diese Methoden unterstützt.

Microsoft hat einen guten Überblick für Entwickler der Funktionen von IE9.

Update: Internet Explorer 9 wurde gestartet (am 14. März 2011) und unterstützt oder definitiv nicht .history.pushState()history.replaceState()

Update 2: Die aktuelle Plattformvorschau von IE10 unterstützt PushState / ReplaceState immer noch nicht .

Update 3: Platform Preview 3 von IE10 unterstützt die Verlaufs-API! Einzelheiten

dave1010
quelle
Ab heute hat die IE10-Geschichte einen Fehler , der sie unbrauchbar macht. Das Popstate-Ereignis wird nicht ausgelöst. Details hier: stackoverflow.com/questions/14698299/…
citykid
17

IE9 unterstützt es nicht.

Sie können jedoch eine Umgehung mithilfe einer Polyfüllung verwenden, um die Funktionalität zu erhalten - History.js https://github.com/browserstate/history.js .

Modernizr leistet gute Arbeit bei der Auflistung von HTML 5-Polyfills hier https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills .

Die Einschränkung besteht darin, dass Ihrer URL in Browsern, die nur HTML 4-Funktionen unterstützen, eine Abfragezeichenfolge hinzugefügt wird.

Sebastian Patten
quelle
Wie aus den Kommentaren in der obigen Frage hervorgeht, wird Popstate in IE10
Mandeep Jain
History.js ist eine gute Lösung, wenn Sie IE 9 oder niedriger unterstützen müssen, aber es sind 23 KB, minimiert. Das ist viel, um nur ein paar Methoden zu unterstützen.
Neil Monroe
0

Übrigens können Sie einen solchen Fehler aufgrund des absoluten Pfads in pushState () erhalten. Als ich den relativen Pfad einstellte, war der Fehler verschwunden.

f0rmat1k
quelle