2012-07-28 5 views
5

Ich habe eine Webseite, wo der Benutzer die Möglichkeit hat, die Bedingungen anzuzeigen, ohne die Seite über AJAX neu zu laden. Das ist an sich kein Problem, aber ich versuche auch, einen Geschichtsstaat voranzutreiben.IE Geschichte Push-Status

, die in den meisten Browsern, außer in IE funktioniert gut. Aus unerfindlichen Gründen wird dort der Inhalt über AJAX geladen, aber auch ein neuer Tab wird mit der vorherigen Seite geöffnet. Wie kann ich das beheben?

Sie können das Beispiel auf dieser Webseite (http://galaxy-battle.de) sehen, klicken Sie auf "T & Cs" in der "Join" -Box.

+0

Können Sie uns den Code zeigen, der das in einer jsfiddle tut, so ist es einfacher, einen Fehler zu erkennen und zu debuggen? –

+0

Oh, sorry, lesen Sie es einfach. Ich werde etwas in einem machen. – arik

+0

Tut mir leid, aber ich konnte den Befehl pushState nicht auf jsfiddle anwenden, sie scheinen ihn zu blockieren. – arik

Antwort

10

IE9 und unter doesn't support pushState. Sie haben eine Ausnahme beim Aufrufen der folgenden Zeile

window.history.pushState (null, null, pathFullPage);

SCRIPT438: Objekt unterstützt keine Eigenschaft oder Methode ‚pushstate‘ terms_and_conditions, Zeile 62 Zeichen 21

Sie wahrscheinlich interessant sein kann, auf einige Abhilfen betrachten diskutiert Emulate/polyfill history.pushstate() in IE

2

Alt, aber immer noch aktuelle Frage? . Ich möchte nur sagen, ich würde empfehlen nicht zu versuchen, pushState auf IE zu emulieren.

Statt dessen können Sie eine Feature-Erkennung verwenden:

  1. wenn history.pushState nicht null ist (Browser unterstützt pushstate), können Sie es verwenden, und laden Sie Ihre Inhalte mit geschickten Javascript

  2. wenn history.pushState ist null auf den Link, Sie url ändern/folgen und machen eine ganze Seite ändern

(Browser unterstützt keine pushstate)

Natürlich bedeutet dies IE < = 9 Benutzer werden nicht alle coolen Animationen haben, die andere Benutzer haben. Aber die Frage, die ich stellen möchte, ist: Wollen Sie im Internet Links zu Ihrer Website sehen, die enthalten?

Nutzer glauben, können Sie Ihre App nützlich und Einfügen von Links, um es auf dem Netz ist. Das ist cool, weil es dir etwas Google-Saft bringt. Wenn dieser Benutzer nun IE verwendet und Sie history.js verwenden, fügt der Benutzer einen Link mit einem Hash ein.

Dies wird eine ordnungsgemäße Indexierung der öffentlichen Seiten Ihrer App und wird auch hässlich aussehen. Meine persönliche Meinung ist, dass eine js-Animation oder ein Lightbox für IE-Benutzer nicht die Abwägung lohnt.

+1

leider geschäftliche Anforderungen sind nicht immer unter der direkten Kontrolle des Entwicklers. – jaydel