Warum kann ich keine relativen URLs mit IE7 verwenden?

8

Ich habe eine Weile gegoogelt und finde keine Antwort auf diese Frage. Mein Problem ist wie folgt:

Für meine Frage brauche ich meine Links eher relativ als absolut. Mein PHP ist so eingestellt, dass es relative URLs zurückgibt und alles funktioniert einwandfrei, bis ich es in IE7 getestet habe. Aus irgendeinem Grund ändert IE7 meine relativen URLs immer weiter, was mein JS-Skript unterbricht. Ist das normal? Gibt es einen Weg, um es zu umgehen?

Zum Beispiel:

IE8, Chrome, Firefox, Safari usw. -

%Vor%

IE7 -

%Vor%     
gomezuk 05.05.2010, 15:49
quelle

5 Antworten

9

Was ich mache, ist die BaseUrl bei init, wie:

%Vor%

... und streiche dann in meinem URL-Handler die baseUrl:

%Vor%

Sie können auch überprüfen, ob der href mit .support() :

"normalisiert" ist %Vor%

(gibt true zurück, wenn der Browser beim Erfassen eines href-Wertes keine Änderungen vornimmt, daher ist er im IE derzeit falsch.)

    
JKS 05.05.2010, 18:30
quelle
0

Wenn ich Sie wäre, würde ich die Browsererkennung verwenden und eine Klausel hinzufügen, um die URL bis auf den relativen Pfad zu entfernen. Ich bin nicht 100% vertraut mit jQuery, aber ich stelle mir vor, Sie könnten es mit einer einfachen Split und Rekonstruktion oder REGEX-Abfrage tun.

Siehe jQuery-URL-Parser-Plugin: Ссылка

    
Seidr 05.05.2010 15:53
quelle
0

Sieht aus, als hätte es etwas mit Sicherheitsproblemen zu tun - Ссылка

    
Sam 05.05.2010 15:56
quelle
0

Richtig, es scheint der beste Weg dafür zu sein, die Domain in jQuery zu entfernen. Für jeden, der ein ähnliches Problem hat, hier ist, was meine Click-Event-Handler aussieht:

%Vor%     
gomezuk 05.05.2010 18:21
quelle
0

Hier ist eine modifizierte Version der JKS-Antwort, die Split statt Teilstring verwendet. Ein bisschen eleganter IMO:

%Vor%     
Josh Noe 21.02.2012 15:08
quelle