aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core.js3
-rw-r--r--test/unit/core.js6
2 files changed, 4 insertions, 5 deletions
diff --git a/src/core.js b/src/core.js
index 1a029814f..9a551446b 100644
--- a/src/core.js
+++ b/src/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 ) {
diff --git a/test/unit/core.js b/test/unit/core.js
index d8906b89f..214b7ca5e 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -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" );
});