IE不支持基本标签吗?

时间:2012-04-30 06:28:11

标签: html internet-explorer hyperlink meta-tags

我不清楚IE对<base>标记的支持。一些文章表明它只适用于绝对href路径。但它对我不起作用。

<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中测试了这个

2 个答案:

答案 0 :(得分:16)

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 [和更新版本]严格执行 head base 标记的使用>文档,并将忽略错位标签。“

要检查一下,请使用validator - 它会报告此类问题。

答案 1 :(得分:1)

根据微软的说法,IE 7和更新版本:http://msdn.microsoft.com/en-us/library/ms535191%28v=vs.85%29.aspx