2011-04-25 64 views
0

my blog標籤雲不與IE 9 的問題似乎是圍繞這些代碼行正確顯示:IE9的JavaScript錯誤

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

想通了。 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和幾個變化。

0

您碰到了IE7特定的錯誤。

檢查了這一點:

http://bugs.jquery.com/ticket/4670

哇,漂亮的錯誤。不過,這不是一個jQuery bug 。您可以用裸機重現它 DOM功能:

var li = document.createElement(「li」);
li.value =「12」;

IE7立即 在MSHTML.DLL中崩潰試圖訪問 內存地址0x00000000。與 li.setAttribute(「value」,「12」)發生同樣的 崩潰。由於 (在HTML4至少) < LI>元素的值,只有當它是一個 孩子的< ol>元素的應用,我懷疑 它可能會試圖訪問 父節點。果然,這確實不是 不會崩潰:

var ol = document.createElement(「ol」); var li = document.createElement(「li」); ol.appendChild(LI); li.value =「12」; 這個錯誤似乎在IE8中得到修復。

+0

在設置值之前,我嘗試過使用'appendChild',但它沒有任何區別,您的答案仍然指向一個真正的問題,並引導我找到真正的原因(請參閱下文)。 – 2011-04-26 00:28:15

+0

很高興幫助:) – GAgnew 2011-04-26 17:16:43