2013-02-28 346 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)移到該函數的外部,它應該可以工作。