今天同事报给我一个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>就无上述问题了。