2014-09-30 56 views
0

我創建了兩個按鈕, 打開按鈕是打開子窗口。 關閉按鈕是關閉子窗口。 這兩個按鈕位於父窗口。Javascript:窗口打開和關閉。如何將窗口聲明爲變量並傳遞給另一個函數?

下面是示例代碼

$("#to-open").click(function() { 
    var popUp = window.open(_contextPath + "open.jsp","Child", "width=500, height=300").focus(); 
}); 

$("#to-close").click(function() { 
     // No sure how to get the popUp object 
    //popUp.close(); 
    }); 

在關閉窗口現在我遇到了困難。 我無法將var popUp傳遞給關閉窗口函數。 有何建議或線索?

感謝

回答

0

簡單地聲明外範圍彈出變量:

var popUp; 
$("#to-open").click(function() { 
    popUp = window.open(_contextPath + "open.jsp","Child", "width=500, height=300").focus(); 
}); 

$("#to-close").click(function() { 
    if (popUp) 
     popUp.close(); 
}); 
+0

我改變你的代碼被刪除if(彈出)。 Firebug抱怨 「TypeError:popUp is undefined popUp.close();」 任何線索? – HenryLoke 2014-09-30 23:51:42

+0

解決: .focus()導致它。 我把它放到一個新的行。 popUp.focus打開按鈕。 謝謝 – HenryLoke 2014-09-30 23:55:36

0

最簡單的方法是把你的窗口對象在全局對象。

var popUp; 
$("#to-open").click(function() { 
    window.popUp = window.open(_contextPath + "open.jsp","Child", "width=500, height=300").focus(); 
}); 

雖然這會變得醜陋,但它被認爲是最好的做法,不要混亂你的全球。

將清潔劑什麼是這樣的

<button id="to-open"> 
</button> 
<button id="to-close"> 
</button> 

$(document).ready(function() { 
    var popUp = 0; 

    $("#to-open").click(function() { 
     popUp++; 
    }); 

    $("#to-close").click(function() { 
     alert(popUp); 
    });     
}); 
相關問題