Javascript:窗口打开和关闭。如何将窗口声明为变量并传递给另一个函数?
问题描述:
我创建了两个按钮, 打开按钮是打开子窗口。 关闭按钮是关闭子窗口。 这两个按钮位于父窗口。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传递给关闭窗口函数。 有何建议或线索?
感谢
答
简单地声明外范围弹出变量:
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();
});
答
最简单的方法是把你的窗口对象在全局对象。
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);
});
});
我改变你的代码被删除if(弹出)。 Firebug抱怨 “TypeError:popUp is undefined popUp.close();” 任何线索? – HenryLoke 2014-09-30 23:51:42
解决: .focus()导致它。 我把它放到一个新的行。 popUp.focus打开按钮。 谢谢 – HenryLoke 2014-09-30 23:55:36