9

我不清楚 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 中测试过这个

4

2 回答 2

17

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 [和更高版本] 严格强制在文档头部使用基本标签,并将忽略放错位置的标签。”</ p>

要检查事情,请使用验证器——它会报告此类问题。

于 2012-04-30T07:28:23.213 回答
1

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

于 2012-04-30T06:50:59.763 回答