That code shouldn't work in any browser. The fact that it works in Firefox
is actually considered a bug, which I believe is being fixed in 3.0.

eval() is supposed to be a method of the window object (i.e. a global
function). It isn't supposed to be available as a method of every object.

What is the purpose of the eval()? And what is the [0] for in your first
eval? I don't see an array in the code, nor any apparent reason to use
eval().

Would this be the code you're looking for?

   function openPage( item ) {
      alert( menuitems[item] );
   }

-Mike

> From: mngd
> 
> The following code works in FF but generates errors in IE6.
> I'm completely stumped - any feedback appreciated...
> 
> ------------------------------------------------------------
> 
> <script type="text/javascript">
> 
> var menuitems = {
>   "home" : "home.html"
> }
> 
> function openPage(item) {
> 
>   // this is what I need to do, works in FF
>   alert(menuitems.eval(item)[0]);
> 
>   // this works in IE and FF - returns 'home'
>   // (without the quotes)
>   alert(item);
> 
>   // this works in FF - returns 'home.html' (without quotes)
>   // generates error in IE6 - 'Object doesn't support this
>   // property or method'
>   alert(menuitems.eval(item));
> 
> }
> 
> </script>
> 
> <h1>Using eval on a JSON array in IE6</h1>
> 
> <a href="javascript:openPage('home')">home</a>
> 
> ------------------------------------------------------------

Reply via email to