[Proto-Scripty] Re: Function expected err when doing instanceof in IE

2008-12-02 Thread kangax

On Dec 2, 12:11 am, yoshi [EMAIL PROTECTED] wrote:
 but it is defined globally? cuz i open up the js debugger console in
 IE8 beta, i type 'Element' and the debugger returns {...} so it is
 defined?  And y is only Element not globally defined and not the
 Template or Hash object ? I think prototype define them on global
 scope?

 what i m trying to do is write a function that loops through all
 functions of an obj, do some AOP.  But i m excluding Prototype defined
 objects because it causes too much recursion; to do that i m manually
 saying if obj is instance of Element, Hash and Array do nothing, and
 Element is causing problem in IE.

I might be missing something, but an object that is an `instanceof
Element` is not necessarily Prototype defined object; It's the one
that has `Element`'s [[Prototype]] somewhere in its prototype chain.
Afaik IE8 does not ensure such inheritance in most of its DOM
elements. If you need to check whether an object is an element, this
naive solution should do it most of the time:

function isElement(o) {
  return (!!o  o.nodeType === 1)
}

Also, don't forget that `instanceof` is not cross-frame safe, so you
might want to use Prototype's `Object.isArray` and `Object.isHash`.


 things works in firefox of course

 thanks again for the help

[...]

--
kangax
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~--~~~~--~~--~--~---



[Proto-Scripty] Re: Function expected err when doing instanceof in IE

2008-12-01 Thread kangax

On Dec 1, 7:36 pm, yoshi [EMAIL PROTECTED] wrote:
 hi all,

 the fowllowing js is causing err on IE:
 $('someThing') instanceof Element

 error: Function expected

 it is fine on any other objects such as:
 $('someThing') instanceof Template -- return false
 $('someThing') instanceof Hase -- return false

 any idea y Element is diff or how i can get around this problem?

global `Element` is undefined in IE8b, hence `instanceof` throws
TypeError (as it expects a function as a right-hand expression). What
exactly are you trying to accomplish with this check?


 thanks in advance

--
kangax
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~--~~~~--~~--~--~---



[Proto-Scripty] Re: Function expected err when doing instanceof in IE

2008-12-01 Thread yoshi

but it is defined globally? cuz i open up the js debugger console in
IE8 beta, i type 'Element' and the debugger returns {...} so it is
defined?  And y is only Element not globally defined and not the
Template or Hash object ? I think prototype define them on global
scope?

what i m trying to do is write a function that loops through all
functions of an obj, do some AOP.  But i m excluding Prototype defined
objects because it causes too much recursion; to do that i m manually
saying if obj is instance of Element, Hash and Array do nothing, and
Element is causing problem in IE.

things works in firefox of course

thanks again for the help



On Dec 1, 7:29 pm, kangax [EMAIL PROTECTED] wrote:
 On Dec 1, 7:36 pm, yoshi [EMAIL PROTECTED] wrote:

  hi all,

  the fowllowing js is causing err on IE:
  $('someThing') instanceof Element

  error: Function expected

  it is fine on any other objects such as:
  $('someThing') instanceof Template -- return false
  $('someThing') instanceof Hase -- return false

  any idea y Element is diff or how i can get around this problem?

 global `Element` is undefined in IE8b, hence `instanceof` throws
 TypeError (as it expects a function as a right-hand expression). What
 exactly are you trying to accomplish with this check?



  thanks in advance

 --
 kangax
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~--~~~~--~~--~--~---