IE9 Javascript错误

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特

的标记云未使用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特定的错误

看看这个:

哇,好虫子。这不是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]+')';
      }