2014-09-30 55 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); 
    });     
}); 
相关问题