Question about jQuery source == on window

377 views Asked by At
data: function( elem, name, data ) {
    if ( !jQuery.acceptData( elem ) ) {
        return;
    }
    elem = elem == window ? windowData : elem;

Copied directly from the jQuery source.

Why is it not safe to use elem === window?

Why does jQuery use type coercion on the window object?

It would appear that in IE there's an issue with top

top == window // true
top === window // false
1

There are 1 answers

0
Raynos On BEST ANSWER

See here for why checking againts the window object with === is unsafe in IE.

I think the root cause is that IE is closely coupled with the Windows OS so you have various OS objects referenced through window and the equality check just dies. That and it just doesn't handled the global host object correctly.