2014-03-31 14 views
6

Hallo Ich erstelle eine angularjs App. Ich habe $ locationProvider.html5Mode als wahr festgelegt. Jetzt bekomme ich eine hübsche URL ohne #. Es funktioniert gut in Chrom und Firefox. Aber als ich versuchte, es in IE 9 zu öffnen, wird es kontinuierlich neu geladen.

+0

mögliche Duplikate von [AngularJS So entfernen Sie # Symbol in IE9 mit Route] (http://StackOverflow.com/questions/17829991/angularjs-how-to-remove-symbol-in-ie-9-by-using-using- Route) – bookthief

+0

Werfen Sie einen Blick auf diese http://stackoverflow.com/questions/17829991/angularjs-how-to-remove-symbol-in-ie-9-by-using-route – bookthief

Antwort

11

Schlechte Nachrichten. IE9 unterstützt keine HTML5-Verlaufs-API. Das ist, was angular html5Mode verwendet. Wenn Sie Ihre App auf IE9 laufen müssen Sie müssen zurück wechseln oder Code hinzufügen, um herauszufinden, ob History API zur Verfügung, ist die Verwendung ist oder standardmäßig auf den Hash-

function supports_history_api() { 
    return !!(window.history && history.pushState); 
} 

Ich weiß. Dummes IE. Es sollte einen schmerzhaften Tod sterben.

+0

Hallo jetzt funktioniert es für IE9, indem Sie dies Bedingung. Aber diese Bedingung, die in android Browsern wiederkehrt und das alte Problem existiert. –

+0

Welche Version auf Android? –

+0

meine Version ist Android 2.3 –

3

$ location Dokumentation

Siehe "Hashband und HTML5-Modi"

Grundsätzlich html5-Modus verwendet History API, wenn der Browser diese Funktion unterstützt, und fällt zurück auf Hash-Bang (#), wenn es nicht unterstützt wird.

Sie können nicht einfach "#" in einem Browser ohne History-API entfernen. Denn wenn Sie die URL ändern, würde der Browser versuchen, ein Neuladen zu erzwingen und den Fluss zu unterbrechen.

Verwandte Themen