2012-04-30 10 views
8

IEの<base>タグのサポートが不明です。いくつかの記事は絶対hrefパスでのみ動作することを示唆しています。しかし、それは私にとってはうまくいかないでしょう。IEはベースタグをサポートしていませんか?

クロムとFFで
<base href="http://domain.net/qu/en/" /> 

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

、リンクをクリックhttp://domain.net/qu/en/sampleに私を取るだろうが、IE9で、それは私も相対<base>でこれを試みたが、それは表示されませんhttp://domain.net/qu/sample

に私を取っています働く

私はマイクロソフト、IE 7以降DOによると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

関連する問題