history.pushState()

messmar

Erfahrenes Mitglied
Guten morgen,

ich möchte den location.href nach einem Ajax Request:

Code:
ajaxStop(function(){...})

leeren/ändern und anschließend den User mit dem folgenden Code, daran hindern, die History Back des Browsers zu bedienen:

Code:
history.pushState(null,null,this.href );

Es funktioniert in anderen Browsern nur unter IE9 abwärts nicht... es gibt in github eine Lösung, aber ich möchte nicht das ganze Plugin runterladen, einbetten und meinen Code umbauen. Gibt's evtl. nen CrossBrowser-WorkAround dafür?

Danke
Messmar
 
Möglicherweise hilft (wie in deinem vorangegangenen Thema) auch hier dieses JS weiter?
HTML:
<!--[if lt IE 9]>
   <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
 
Wenn IE9 selbst davon betroffen ist, muß hier im Conditional Comment der "kleiner-gleich-Operator" lte (= less than or equal to) angewendet werden:
HTML:
<!--[if lte IE 9]>
   <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Vielleicht hilft das jetzt weiter.
[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:
IE9 kann mit:
Code:
history.pushState()
nichts anfangen.
Das mag hier jetzt zunächst auf deinen Anwendungsfall ja zutreffen, das Beispiel dive into dogs beherrscht IE 9+ aber aus dem Effeff, und mit meiner Empfehlung zumindest IE8 (lokal getestet).

Darum an dieser Stelle die Rückfrage nach einem Link oder Beispiel auf http://jsfiddle.net.
[edit]Tipp-Ex[/edit]
 
Zuletzt bearbeitet:
Oh jetzt dachte ich schon ich hätte den Goldenen Gral gefunden, aber history.js macht auch nur ein Fallback auf Hash. Schade..

dive into dogs macht bei IE9 aber keine history pushes.
Javascript:
function supports_history_api() {
  return !!(window.history && history.pushState);
}
Sondern löst den Link einfach ganz normal aus.
 
@messmar IE9 kann pushstate nicht und es gibt auch keinen work around. Du kannst mit Hashes arbeiten "example.com/#!/blah/blub", das funktioniert auch mit HTML4.
 

Neue Beiträge

Zurück