使用IE 9无法正确呈现my blog的标记云。 问题似乎是围绕这些代码行:
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'/>
但我不能这样做,或者我的不透明窗口因为另一个脚本而变黑(见Disabling ieretrofit.js on Blogger)。
任何人都可以帮我解决这个问题吗?
ps:因为它不起作用我用以下的JQuery snipet隐藏了标签云(跛脚,我知道)。
$(document).ready(function(){
if ($.browser.msie ) {
$("#Label1").hide();
}
});
答案 0 :(得分:0)
您遇到了IE7特定的错误。
检查出来:
http://bugs.jquery.com/ticket/4670
哇,好错误。这不是一个jQuery错误 虽然。你可以用裸露的方式重现它 DOM功能:var li = 使用document.createElement( “里”);
li.value =“12”;立即IE7 尝试访问的MSHTML.DLL崩溃 内存地址0x00000000。相同 崩溃发生在 li.setAttribute(“value”,“12”)。以来 (至少在HTML4中)a的值 &LT;李&GT;元素仅适用于a &的孩子醇&GT;元素,我怀疑 它可能正试图访问 父节点。果然,这样做 不崩溃:
var ol = 使用document.createElement( “OL”); var li = document.createElement(“li”); ol.appendChild(LI); li.value =“12”; 这个错误似乎在IE8中得到修复。
答案 1 :(得分:0)
想出来。
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]+')';
}
这适用于code和几种变体。