2010-08-20 79 views
0

昨天我問了這個問題,但因爲我沒有註冊,所以無法回覆,我嘗試了HoLyVieR,Ryan Kinal和Vagabond說的建議,但是他們似乎沒有工作。Internet Explorer中的對象預期錯誤

我已經取出來作爲似乎是暗示問題和解決方案,但現在的代碼不會在所有的工作,但沒有顯示出錯誤的數組。

原來的問題是在這裏Object expected error in Internet Explorer

<script language="JavaScript"> 
function toggleLayer(whichLayer) 
{ 
    var elem, vis,eelem, vvis; 

    if(document.getElementById) // this is the way the standards work 
    elem = document.getElementById(whichLayer); 
    else if(document.all) // this is the way old msie versions work 
     elem = document.all[whichLayer]; 
    else if(document.layers) // this is the way nn4 works 
    elem = document.layers[whichLayer]; 
    vis = elem.style; 


for (i=0;i<25;i++) 
{ 
    eelem = document.getElementById('sub'+i); 
    vvis = eelem.style; 
    if(eelem==elem){ 
     vvis.display = "block"; 
    } else { 
     vvis.display = "none"; 
    } 
} 

    if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) 
    vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none'; 
    vis.display = (vis.display==''||vis.display=='block')?'none':'block'; 
} 
</script> 
+0

這與您原來的問題有何不同? – 2010-08-20 09:35:02

+1

[Internet Explorer中的對象預期錯誤]的可能重複(http://stackoverflow.com/questions/3512817/object-expected-error-in-internet-explorer) – 2010-08-20 09:35:22

+0

我建議您將郵件發送給SO人員(請參閱'聯繫人我們'鏈接),並要求合併您的帳戶,包括他們的號碼。在您的說明框中添加「合併我...」之類的內容,以便他們可以看到它就是您。 – 2010-08-20 10:35:41

回答

0

如果有的話從sub0sub1,... sub24不存在您會得到這個錯誤。你的元素可能是sub1 - sub25,這樣document.getelementById('sub0');沒有找到任何東西?

您的第一部分代碼檢查是否存在document.getElementById,如果不存在,則返回document.alldocument.layers。在緊接着的代碼塊中,您認爲存在document.getElementById。無論你決定走哪條路,你都應該保持一致。