gpt4 book ai didi

javascript - 仅在 IE 中 onload 时带有 appendChild 的 InvalidCharacterError

转载 作者:行者123 更新时间:2023-11-30 16:55:46 26 4
gpt4 key购买 nike

我试图在 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("&nbsp;"));
elems[e].appendChild(shim);
}
}
}
window.onload = fixWidth;

它在 IE8 上正常工作。但在 IE11 上不行。

最佳答案

这是IE8中的bug,IE11中没有,因为做

document.createElement("&nbsp;")

不应该真正在任何地方工作,因为不间断的空间不是一个元素。
Chrome 给出错误

Uncaught InvalidCharacterError: Failed to execute 'createElement' on 'element': The tag name provided ('&nbsp;') is not a valid name.

而且我怀疑几乎所有浏览器但是 IE8 都会抛出错误

如果你想给元素添加一个不间断的空格,你可以这样做

shim.innerHTML = shim.innerHTML + "&nbsp;";

关于javascript - 仅在 IE 中 onload 时带有 appendChild 的 InvalidCharacterError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29750096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com