IE9 Javascript错误
的标记云未使用IE 9正确渲染。 问题似乎围绕着以下几行代码:IE9 Javascript错误,javascript,internet-explorer-9,Javascript,Internet Explorer 9,的标记云未使用IE 9正确渲染。 问题似乎围绕着以下几行代码: var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz); var li = document.createElement('li'); li.style.fontSize = fs+'px'; 奇怪的是,如果我删除兼容性标签,一切都正常: <meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/> 您遇到了IE7特
var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
var li = document.createElement('li');
li.style.fontSize = fs+'px';
奇怪的是,如果我删除兼容性标签,一切都正常:
<meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/>
您遇到了IE7特定的错误 看看这个: 哇,好虫子。这不是jQuery错误 虽然你可以用裸体复制它 DOM函数: 李华= 文件。createElement(“li”)
li.value=“12” 立即执行IE7 试图访问MSHTML.DLL时发生崩溃 内存地址0x00000000。相同的 撞车发生在 li.setAttribute(“值”、“12”)。自从 (至少在HTML4中)的值
- 元素的孩子
它可能正在尝试访问
父节点。果然是这样
不崩溃:
瓦尔奥尔=
文件。createElement(“ol”);李华
=document.createElement(“li”);l.儿童(李);li.value=“12”;
这个错误似乎在IE8中得到了修复
我明白了。
s
方法有时返回NaN
(出于某种原因,这只会导致IE在兼容模式下出现问题)。
我用isNaN
方法修复了它,如下所示:
if (!isNaN(fs)) {
li.style.fontSize = fs+'px';
}
还有一个编辑:
if (!isNaN(c[0]) && !isNaN(c[1]) && !isNaN(c[2])) {
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
}
这适用于这一点和一些变体。在设置值之前,我尝试使用
appendChild
,但没有任何区别,您的回答仍然指出了一个真正的问题,并引导我找到了真正的原因(见下文)。
if (!isNaN(c[0]) && !isNaN(c[1]) && !isNaN(c[2])) {
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
}