2010-08-20 11 views
0

나는 어제 요청했지만 회신하지 못했습니다. 등록되지 않았으므로 HoLyVieR, Ryan Kinal 및 Vagabond가 말한 제안을 시도했지만 그 중 아무 것도 작동하지 않는 것 같습니다.Internet Explorer에서 개체 예상 오류

제안 된 문제와 해결책 인 것처럼 배열을 꺼 냈지만 코드는 전혀 작동하지 않지만 오류는 표시되지 않습니다.

원래 질문은 아무것도 sub0, sub1에서 ... sub24이 존재하지 않는 경우이 오류가 발생합니다 여기 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

원래 질문과 어떻게 다른가요? –

+1

가능한 [Internet Explorer의 예상 개체 오류] (http://stackoverflow.com/questions/3512817/object-expected-error-in-internet-explorer) –

+0

내가 SO 사람에게 메일을 제안합니다 ('연락처 아래 '링크)를 클릭하고 번호를 포함하여 계정을 병합하도록 요청하십시오. 설명 상자에 "나와 병합 ..."과 같은 내용을 추가하면 실제로 볼 수 있습니다. –

답변

0

입니다. 귀하의 요소는 아마도 sub1 - sub25입니다. 따라서 document.getelementById('sub0');은 아무 것도 찾지 못합니까?

코드의 첫 번째 섹션에서 document.getElementById이 있는지 확인하고, 그렇지 않은 경우 document.all 또는 document.layers에 속합니다. 그 직후의 코드 블록에서는 document.getElementById이 있다고 가정합니다. 당신은 당신의 가정에 일관성을 유지해야합니다.

관련 문제