【发布时间】:2019-10-15 15:37:33
【问题描述】:
我正在尝试编写一个函数来识别 javascript 变量是否是窗口。我研究了一些方法来确定变量是否是窗口,但似乎都没有工作。
我已经尝试了以下
//define the variable as the window
var myVariable =$(window);
//attempt 1 by comparing variable to window - showing not a window
if(myVariable==window){
console.log("window");
}
else{
console.log("not a window");
}
//attempt 2 - showing not a window
if(myVariable===window){
console.log("window");
}
else{
console.log("not a window");
}
//atttempt 3 - returns false - from https://stackoverflow.com/questions/9576283/jquerys-iswindow-method
function isWindow(obj) {
var toString = Object.prototype.toString.call(obj);
return toString == '[object global]' || toString == '[object
Window]' || toString == '[object DOMWindow]';
}
///attempt 4 - returns false
function isWindowf(obj) { return ['[object global]','[object
Window]','[object DOMWindow]'].indexOf(Object.prototype.toString.call(obj)) >= 0
}
我正在寻找一个可以放入变量的函数,它会说明变量是否是窗口,例如
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script>
//define the variable
var myVariable=$(window);
//put the variable into a function
function checkIfMyVariableIsAWindow(myVariable ){
//if is a window then return true
if(/*code to run to see if is a window*/){
console.log("is a window")
}
//if not a window then return false
else{
console.log("is not a window")
}
}
<script>
提前感谢您的帮助
【问题讨论】:
-
一个 jQuery 对象 === 窗口永远不会是真的。它们不是同一类型。
-
啊,这就是它不起作用的原因。你知道判断 jquery 对象是否为窗口的方法吗?
-
jqueryObject[0] === window -
非常感谢。完美运行
-
为什么要降价。我清楚地说明了我尝试过的事情,并说明了可能存在的常见误解
标签: javascript jquery window