<base>标签在ie6下的问题

今天同事报给我一个bug , 即在head里加了个<base target="_blank"/>

在ie6下会出现以下错误

改成<base target="_blank"></base>就没有错误了。

原因是在ie6下<base target="_blank"/> 与 <base target="_blank"></base>有不同的解析

当<base target="_blank"/>, ie6会将<base>后面的所有元素都当成<base>的子元素。

而出了上述的错误的原因是在<head>元素里面有一个document.getElementsByTagName("head")[0].appendChild的操作,

<head>
<base target="_blank"/>

<script type="text/javascript">

var s= document.createElement("script");
s.script="a.js";
document.getElementsByTagName("head")[0].appendChild(s);
document.domain = "7k7k.com";

</script>
</head>

即,在ie6下<base/> ,ie6会将后面所有的元素当成<base>的子元素,所以</head>就没渲染完,所以在这个期间调用

document.getElementsByTagName("head")[0].appendChild(s);会出现不明错误。

改成<base></base>就无上述问题了。

原文地址:https://www.cnblogs.com/fang9159/p/basetag.html