Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Question about jQuery source == on window

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
like image 655
Raynos Avatar asked Feb 02 '26 22:02

Raynos


1 Answers

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.

like image 92
Raynos Avatar answered Feb 05 '26 13:02

Raynos