2012-04-30 70 views
8

我不清楚IE對<base>標籤的支持。一些文章表明,它只適用於絕對href路徑。但它不適用於我。IE不支持基本標記嗎?

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

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

在Chrome和FF,點擊鏈接會帶我去http://domain.net/qu/en/sample但在IE9,它帶我去http://domain.net/qu/sample

我有一個相對<base>以及嘗試這樣做,它不會出現上班。

我在IE9.08

+0

''標記''中的第一件事嗎?它應該是:) – Daan

+0

@達安:它(起初,我以爲你在嘲笑我) – HyderA

+1

嗯,你沒有說,這是我認爲的第一件事,作爲這個問題的一個可能的原因。所以我想我會問。不是故意要碰到我正在帶着米奇,對不起!很高興你現在已經解決了這個問題:) – Daan

回答

14

IE一直支持<base href>。根據規範,只有當href值是絕對URL時纔會定義它,儘管一些瀏覽器甚至在相對URL的情況下也已經解釋了它。它必須放在文檔的<head>部分;否則瀏覽器可能會忽略它。基地址只能在文檔中設置一次。 (如果違反,瀏覽器往往會忽略除第一個之外的所有內容)。

在這種情況下,我的猜測是在<base>標記之前有任何標記之外的某個字符。試想一下:

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

這是因爲<base>標記之前的無間斷空格字符的無效。在HTML解析中,不是空白字符的不間斷空格隱式關閉<head>元素並打開<body>元素。這意味着<base>標籤現在位於<body>。某些瀏覽器仍然可以接受它,但正如Tieson T的答案中所引用的文檔所述:「Internet Explorer 7 [和更新版本]嚴格執行在文檔的標頭中使用基底標籤,並且將忽略錯位標籤。「

要檢查出來,請使用validator - 這將報告其他問題。

+3

你又來了? - 這與UTF-8字節順序標記問題有關:http://stackoverflow.com/questions/10379827/ie-not-parsing-html-correctly#comment13382020_10379827 – HyderA