2012-04-30 15 views
8

Nie jestem pewien na temat wsparcia IE dla znacznika <base>. Niektóre artykuły sugerują, że działa tylko z bezwzględną ścieżką href. Ale to nie zadziała dla mnie.Czy IE nie obsługuje tagu base?

<base href="http://domain.net/qu/en/" /> 

<a href="sample">Sample Link</a> 

Chrome i FF, klikając na link zabierze mnie do http://domain.net/qu/en/sample ale w IE9, to biorąc mnie do http://domain.net/qu/sample

Próbowałem to ze względnym <base> jak dobrze, i nie wydaje się, pracować.

Mam tylko przetestowane w IE9.08

+0

Czy etykieta "" jest pierwszą rzeczą w twoim ''? Prawdopodobnie powinno być :) – Daan

+0

@ Daan: To jest (Początkowo myślałem, że kpisz ze mnie) – HyderA

+1

Cóż, nie powiedziałeś, i to była pierwsza rzecz, którą uważałem za możliwą przyczynę tego problemu. Więc pomyślałem, że zapytam. Nie chciałam spotkać się tak, jakbym brała mickey, przepraszam! Cieszę się, że rozwiązałeś problem teraz :) – Daan

Odpowiedz

14

IE zawsze wspierała <base href>. Zgodnie ze specyfikacją, zawsze zdefiniowano je tylko wtedy, gdy wartość href jest bezwzględnym adresem URL, chociaż niektóre przeglądarki zinterpretowały ją nawet w przypadku względnego adresu URL. Musi być umieszczony w części dokumentu; w przeciwnym razie przeglądarki mogą je zignorować. Adres bazowy można ustawić tylko raz w dokumencie. (Jeśli jest to naruszone, przeglądarki zazwyczaj ignorują wszystkie oprócz pierwszej.)

W tym przypadku, domyślam się, że przed tagiem znajduje się jakiś znak przed tagiem <base>. Rozważ to:

 <base href="http://domain.net/qu/en/" /> 
<a href="sample">Sample Link</a> 

To jest nieważny ze względu na charakter przestrzeni bez przerwy przed znacznikiem <base>. Podczas parsowania HTML, przestrzeń bez przerw, która nie jest znakiem białych znaków, domyślnie zamyka element <head> i otwiera element <body>. Oznacza to, że znacznik <base> będzie teraz znajdować się w <body>. Niektóre przeglądarki mogą nadal je akceptować, ale ponieważ dokument cytowany w odpowiedzi Tieson T brzmi: "Internet Explorer 7 [i nowszy] ściśle egzekwuje użycie znacznika base w obrębie głowicy dokumentu i zignoruje nieumiejętnie umieszczone tagi . "

Aby sprawdzić, co się dzieje, użyj numeru validator - będzie między innymi zgłaszać takie problemy.

+3

Znowu ?! - Było to związane z problemem oznaczenia bajtów UTF-8: http://stackoverflow.com/questions/10379827/ie-not-parsing-html-correctly#comment13382020_10379827 – HyderA