我正在尝试在IE11中执行Javascript函数,但是我在appendChild上遇到了一个InvalidCharacterError。
function fixWidth(){
var elems=document.getElementsByTagName("*");
for(e=0; e<elems.length; e++){
var eCurStyle = elems[e].currentStyle;
var l_minWidth = (eCurStyle.minWidth) ? eCurStyle.minWidth : eCurStyle.getAttribute("min-width");
if(l_minWidth && l_minWidth != 'auto'){
var shim = document.createElement("DIV");
shim.style.cssText = 'margin:0 !important; padding:0 !important; border:0 !important; line-height:0 !important; height:0 !important; BACKGROUND:RED;';
shim.style.width = l_minWidth;
shim.appendChild(document.createElement(" "));
elems[e].appendChild(shim);
}
}
}
window.onload = fixWidth;
它在IE8上正常工作。但不是IE11。
答案 0 :(得分:2)
这是IE8中的错误,而不是在IE11中,如
document.createElement(" ")
不应该在任何地方工作,因为不间断的空间不是元素 Chrome提供了错误
未捕获的InvalidCharacterError:无法执行&#39; createElement&#39;上 &#39;元素&#39;:提供的标记名称(
' '
)不是有效名称。
我怀疑几乎所有的浏览器但 IE8都会引发错误
如果要为元素添加不间断空格,可以执行
shim.innerHTML = shim.innerHTML + " ";