任何时候我试图引用我的全局变量我得到Uncaught TypeError: undefined is not a function
错误并且没有任何反应。因为我是javascript新手,所以我可能会遗漏一些明显的东西。
我已经简化了下面的代码,以便您可以看一看。非常感谢所有帮助。
var popup;
function first(){
popup = window.open(...); //opens a popup
popup.moveTo(10,10) //moves the window
second();
}
function second(){
.
.
.
//does an XMLHttpRequest and when it's done (simplified) it tries to close the window
xmlHttp.onreadystatechange = function(){
popup.close();
}
}
每当弹出popup.close()时,我都会收到上面的错误。我错过了一些非常明显的东西吗?
对于未来的问题,这是一个解决方案:
而不是popup.close();
var win = window.open("","popup");//open a new window with the same name as before
win.close();
通过这样做,它将引用相同的窗口对象,并且能够关闭它。
答案 0 :(得分:2)
根据您的错误,有两种可能性
pop
无法访问close
在pop
object 中不存在
醇>
我在控制台试了两次
当对象pop
不存在时
pop.close()
你会得到错误
ReferenceError: pop is not defined
当对象中没有函数close
时
var pop = {}
pop.close()
你会得到错误
TypeError: undefined is not a function
根据您的错误,pop对象中没有函数名close
。
答案 1 :(得分:0)
试试这个..
var popup;
function first(){
popup = window.open(...); //opens a popup
popup.moveTo(10,10) //moves the window
second(popup);
}
function second(popup_){
.
.
.
//does an XMLHttpRequest and when it's done (simplified) it tries to close the window
xmlHttp.onreadystatechange = function(){
popup_.close();
}
}