Expected Object Error in Internet Explorer

This code works in both Firefox and Chrome.

When a page loads in Internet Explorer, you get an error message

User agent: Mozilla / 4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident / 4.0; GTB6.5; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0. 30729, Media Center PC 6.0, eSobiSubscriber 2.0.4.16, FDM, InfoPath. 3) Timestamp: Wed, Aug 18. 2010 13:48:54 UTC

and when you click a link

<a href="javascript:toggleLayer('sub< ? echo $l; ?>');"><? echo $alp[$l]; ?></a> 

you will get an error

Message: Expected Object
Line: 4
Char: 1
Code: 0
URI:

Message: Object required
Line: 24
Char: 4
Code: 0
URI:

There are no errors in Firefox or Chrome, just IE.

. :

function toggleLayer( whichLayer )
{
  var sub=new Array();
  for (i=1;i<25;i++)
  {
  sub[i] = 'sub'+i;
 }
  var elem, vis;
  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;
  // if the style.display value is blank we try to figure it out here



  for (i=1;i<26;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';
}
+3
1

"Object expected" / "Object required" Internet Explorer , , undefined.

undefined, , , , , :

for (i=1;i<26;i++)
 {
   eelem = document.getElementById( sub[i] ); // <---- UNDEFINED
   vvis = eelem.style; // <----- ERROR
   if(eelem==elem){
    vvis.display = "block";
    } else {
    vvis.display = "none";
    }
 }

"eelem" undefined , "sub" 1 24. 25. , :

eelem = document.getElementById( sub[i] );

,

eelem = document.getElementById( undefined );

undefined eelem. , eelem, undefined .

, 1-25, , 1 24.

+3

Source: https://habr.com/ru/post/1760308/


All Articles