I solved it already, have you tried my snippet to understand native IE
functions?

Native IE functions have these "features"
 - they are not instanteof Function
 - they are not instanceof Object
 - accordingly, they have not a toString method, decompilation is in this
case safe enough
 - you cannot call them via Function callbacks ( function expected, lol )

Regards

On Mon, Aug 3, 2009 at 10:57 AM, DBJDBJ <dbj...@gmail.com> wrote:

>
>
> There are two "main points" here: terminology and reliability.
> http://dbj.org/dbj/?p=270
> (sorry for a blog plug )
>
> typeof( window.alert )  === 'object' is going head-on towards browser
> (+OS) differences so, same as ECMA comitee, I have no resources to
> "solve" that one ...
>
> --DBJ
>
> On Aug 1, 3:16 pm, Andrea Giammarchi <andrea.giammar...@gmail.com>
> wrote:
> > come on it was quoted as a metaphor ... what you have done makes sense
> but
> > if the point is reliability it does not in any case with IE so let's
> speed
> > up a common function, no?
> >
> > On Sat, Aug 1, 2009 at 2:17 PM, DBJDBJ <dbj...@gmail.com> wrote:
> >
> > > "... DBJ 'mess' ... " ?
> >
> > > One espresso to many , Andrea :-)  ?
> >
> > > PS:  I think that top.alert() is "object" in IE because they can't
> > > think of DOM as a exclusive domain of javascript. There is this thing
> > > called "vbscript" they have to make work inside IE, as well ... but ..
> > > let's not go there ;o)
> >
> > > On Jul 27, 5:43 pm, Andrea Giammarchi <andrea.giammar...@gmail.com>
> > > wrote:
> > > > Yes Daniel ... ( sorry I had another ticket open and I read Ariel ...
> )
> >
> > > > On Mon, Jul 27, 2009 at 5:43 PM, Andrea Giammarchi <
> >
> > > > andrea.giammar...@gmail.com> wrote:
> > > > > Yes Ariel, I was talking about user defined stuff and obviously
> typeof
> > > > > "unknown" breaks the rule as well but this is not the case, is it?
> >
> > > > > If toString.call(obj) is not reliable cause it could return [object
> > > Object]
> > > > > DBJ "mess" is not reliable as well because passed variable could
> not
> > > produce
> > > > > what he is expecting, starting from document.getElementById which
> is
> > > object
> > > > > and not function in IE, got the point?
> >
> > > > > At least you told me why there is a call rather than an instanceof
> but
> > > what
> > > > > about this for IE DOM functions?
> >
> > > > > return !!obj && typeof obj.toString === "undefined" &&
> > > > > /^\s*\bfunction\b/.test(obj);
> >
> > > > > it works fine to me in every IE (other browsers will be filtered by
> > > first
> > > > > feature test)
> >
> > > > > Regards
> >
> > > > > On Mon, Jul 27, 2009 at 5:29 PM, Daniel Friesen <
> > > nadir.seen.f...@gmail.com
> > > > > > wrote:
> >
> > > > >> typeof fn === 'function'; // Some things like
> > > > >> document.createElement('object'); return wonky results
> > > > >> fn instanceof Function; // Breaks across iFrames
> > > > >> toString.call(fn) === "[object Function]"; // Works the same
> across
> > > > >> iFrames and returns more reliable results
> >
> > > > >> ~Daniel Friesen (Dantman, Nadir-Seen-Fire) [
> > >http://daniel.friesen.name]
> >
> > > > >> Andrea Giammarchi wrote:
> > > > >> > About isFunction
> >
> > > > >> > I lost the point where toString.call(obj) === "[object
> Function]"
> > > was
> > > > >> > introduced instead of obj instanceof function
> >
> > > > >> > I understand differences in IE so I wonder if two distinct
> callbacks
> > > > >> > could solve the odyssey:
> >
> > > > >> >     isFunction: function( obj ) {
> > > > >> >         return obj instanceof Function;
> > > > >> >     },
> >
> > > > >> >     isDOMFunction: toString.call(window.alert) === "[object
> > > Function]" ?
> > > > >> >         function( obj ) {
> > > > >> >             return toString.call(obj) === "[object Function]";
> > > > >> >         }:
> > > > >> >         // IE only and only until standard native function
> manifest
> > > > >> >         function( obj ){
> > > > >> >             return !!obj && typeof obj.toString === "undefined"
> &&
> > > > >> > /^\s*\bfunction\b/.test(obj);
> > > > >> >         }
> > > > >> >     ,
> >
> > > > >> > In this way we could consider that in every browser, and when
> > > > >> > call/apply are supported, isFunction(fn) will guarantee
> call/apply
> > > > >> > while a DOMFunction could require a try catch or a different
> > > behavior
> > > > >> > for IE
> >
> > > > >> > switch(true){
> > > > >> >     case $.isFunction(fn): return fn.call(what, ever);
> > > > >> >     case $.isDOMFunction(fn): what.push.call(what,
> > > toArray(fn(ever)));
> > > > >> > return what;
> > > > >> >     default: throw new Error("what tf?");
> > > > >> > }
> >
> > > > >> > ... or maybe not?
> > > > >> > Regards
> >
> > > > >> > On Sun, Jul 26, 2009 at 4:09 PM, Andrea Giammarchi
> > > > >> > <andrea.giammar...@gmail.com <mailto:
> andrea.giammar...@gmail.com>>
> > > > >> wrote:
> >
> > > > >> >     I usually encapsulate toString from Object.prototype and if
> > > > >> >     somebody breaks the rule it means we cannot trust anything
> > > > >> >     included typeof. So, in few words, nobody has intersts into
> > > break
> > > > >> >     this rule, imho.
> >
> > > > >> >>     On Jul 26, 2009 8:07 AM, "DBJDBJ" <dbj...@gmail.com
> > > > >> >>     <mailto:dbj...@gmail.com>> wrote:
> >
> > > > >> >>     Also, IMHO this yields high level of encapsulation of an
> > > important
> > > > >> >>     mechanism.
> > > > >> >>     Which is a good thing.
> > > > >> >>     And it is a fraction of a micro second slower then
> >
> > > > >> >>     Object.prototype.toString.call(x) === "[object Object]"
> >
> > > > >> >>     but it is more compact ...
> >
> > > > >> >>     In any case we are entering the subjective judgement phase,
> so
> > > I
> > > > >> >>     think
> > > > >> >>     we should stop here and leave it to jQuery team to use this
> or
> > > > >> not...
> >
> > > > >> >>     --DBJ On Jul 26, 12:09 am, Andrea Giammarchi
> > > > >> >>     <andrea.giammar...@gmail.com
> > > > >> >>     <mailto:andrea.giammar...@gmail.com>> wrote:
> >
> > > > >> >>     > I miss the point about regexp usage ... please tell me
> the
> > > > >> >>     difference (in a > real scenario) betwe...
> >
> > > > >> >>     > On Sat, Jul 25, 2009 at 1:38 PM, DBJDBJ <
> dbj...@gmail.com
> > > > >> >>     <mailto:dbj...@gmail.com>> wrote: > > > This indeed woks :
> > > > >>  functi...
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to