使用Javascript关闭窗口时创建事件

时间:2013-09-27 00:27:15

标签: javascript php jquery forms popup

我正在创建一个允许我从中选择值的弹出窗口,然后在我选择了值之后,我需要关闭窗口,然后将其传递给我的主窗体。

我的主要形式的代码:

onClick="cust=window.open('popup.php?count=<?=$RowStart?>&name_id=' + document.form1.name_id<?=$RowStart?>.value'custWindow','top=50, left=50, height=150, width=375, scrollbars=yes, resizable=yes');cust.focus(););

弹出窗口中的代码:

<form name="form1" action="<?=$_SERVER['PHP_SELF']?>" method="post">
<table width="100%" border="0" cellpadding="0" cellspacing="0"> 
<tr>
<td>
<input id="name" name="name" type="text"/>
<input id="nameid" name="nameid" type="hidden" value ="<?=$name_id?>"/>
</td>
<td>
<input name="ellipse" type="button" value="..." onClick="ellipse=window.open('engine_item_list2.php?name='+document.form1.name.value,'ellipse','top=50,left=50,width=500,height=500, scrollbars=yes, resizable=yes'); ellipse.focus();"/> 
</td>
</tr>
</table>
</form>

当我点击主窗体中的按钮时,它会打开一个弹出窗体的新窗口。表单内部是一个椭圆,它使用名称文本字段的输入获取name_id的值。

我能够从椭圆中获取值到name_id,因为椭圆中有一个提交按钮。但是我的弹出窗口form1不应该包含一个保存按钮,所以我必须通过在关闭弹出窗口或使用其他方式提交时将弹出窗口中的值传递回主窗体。

我想我应该使用window.close()但我不知道如何使用它传回数据。有没有办法可以链接窗口中的关闭按钮,这样当点击它时,值会被传递回主窗体?

2 个答案:

答案 0 :(得分:1)

当在弹出窗口中单击“完成”按钮或类似内容时,您应该能够使用弹出窗口中的window.opener找到打开它的窗口,然后将数据放入DOM中或该窗口的javascript变量。将弹出窗口中的数据放入原始窗口后,您可以使用window.close()关闭弹出窗口。

注意,现在更常见的是在窗体的同一窗口中使用临时叠加而不是弹出一个新窗口,这也避免了与弹出窗口阻止程序的任何冲突,这可能会妨碍弹出新窗口窗口。

这不会处理窗口中的近角。这通常只相当于“取消”操作,因此单击它时不需要执行任何操作(按照常规UI约定)。典型的UI将涉及“完成”,“完成”或“确定”按钮,当用户希望接受输入的数据时,该按钮将被点击。它将在此按钮的单击处理程序中使用window.opener来查找父/主窗口,将弹出窗体中的数据放入该窗口,然后调用window.close()关闭弹出窗口。

答案 1 :(得分:0)

<强>的Javascript

window.onbeforeunload=function(){
   alert('This is the popup!');
}

OR

function window.onbeforeunload(){
   alert('This is the popup!');
}