my blog的标签云在IE9中不能正确呈现,问题似乎出在这些代码行上:
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片段隐藏了标签云(我知道这很差劲)。
$(document).ready(function(){
if ($.browser.msie ) {
$("#Label1").hide();
}
});发布于 2011-04-26 08:38:35
我想通了。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和几个变体。
发布于 2011-04-25 12:33:08
你遇到了一个IE7特有的bug。
看看这个:
http://bugs.jquery.com/ticket/4670
哇,不错的bug。不过,这不是一个jQuery错误。您可以使用纯DOM函数来重现它:
var li = document.createElement("li");
li.value = "12";
尝试访问内存地址0x00000000时,MSHTML.DLL中的IE7立即崩溃。li.setAttribute("value","12")也会发生同样的崩溃。因为(至少在HTML4中)< li>元素的值仅在它是< ol>元素的子节点时才适用,所以我怀疑它可能试图访问父节点。果然,这不会崩溃:
var ol = document.createElement("ol");var li = document.createElement("li");ol.appendChild(li);li.value = "12";此错误似乎已在IE8中修复。
https://stackoverflow.com/questions/5774919
复制相似问题