Skip to content
Permalink
Browse files

Refine the jQuery.isWindow check.

  • Loading branch information...
rafbm authored and dmethvin committed Dec 6, 2011
1 parent 166b9d2 commit 0fcfac7568823a4eec4e5dd7b9bf527a8ec04f5c
Showing with 4 additions and 5 deletions.
  1. +1 −2 src/core.js
  2. +3 −3 test/unit/core.js
@@ -476,9 +476,8 @@ jQuery.extend({
return jQuery.type(obj) === "array";
},

// A crude way of determining if an object is a window
isWindow: function( obj ) {
return obj && typeof obj === "object" && "setInterval" in obj;
return obj != null && obj == obj.window;
},

isNumeric: function( obj ) {
@@ -558,9 +558,10 @@ test("isXMLDoc - XML", function() {
}

test("isWindow", function() {
expect( 12 );
expect( 14 );

ok( jQuery.isWindow(window), "window" );
ok( jQuery.isWindow(document.getElementsByTagName("iframe")[0].contentWindow), "iframe.contentWindow" );
ok( !jQuery.isWindow(), "empty" );
ok( !jQuery.isWindow(null), "null" );
ok( !jQuery.isWindow(undefined), "undefined" );
@@ -570,8 +571,7 @@ test("isWindow", function() {
ok( !jQuery.isWindow(1), "number" );
ok( !jQuery.isWindow(true), "boolean" );
ok( !jQuery.isWindow({}), "object" );
// HMMM
// ok( !jQuery.isWindow({ setInterval: function(){} }), "fake window" );
ok( !jQuery.isWindow({ setInterval: function(){} }), "fake window" );
ok( !jQuery.isWindow(/window/), "regexp" );
ok( !jQuery.isWindow(function(){}), "function" );
});

0 comments on commit 0fcfac7

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.