2013-02-28 205 views
2

我不知道为什么这不起作用。这段代码有什么问题吗?该函数被调用我检查警报,但它不会关闭窗口。从父窗口关闭子窗口

$('#click').click(function() { 
    var win = window.open("test3.html","something","width=550,height=170"); 
}); 

function closeit(){ 
    win.close(); 
} 

和test3.html

window.opener.closeit(); 

回答

4

win变量的作用域,处理click事件的功能。将它放在该函数和closeit共享的作用域中。

在这种情况下,这可能会是这样的:

var win; 

… 

    $('#click').click(function() { 
     win = window.open("test3.html", "something", "width=550,height=170"); 
    }); 
}); 

function closeit() { 
    win.close(); 
} 
+0

谢谢你解释。这让我无法理解 – user2014429 2013-02-28 01:14:49

1

第一win是在回调范围的局部变量,而第二个是一个全局对象。将定义(var win)移到该函数的外部,它应该可以工作。