0

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

我的主要形式的代码:

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() 但我不知道如何使用它传回数据。有没有办法可以链接窗口中的关闭按钮,以便在单击它时将值传递回主窗体?

4

2 回答 2

1

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

请注意,现在更常见的是在同一个窗口中为您的表单使用临时覆盖而不是弹出一个新窗口,并且它还避免了与可能妨碍弹出新窗口的弹出窗口阻止程序的任何冲突。

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

于 2013-09-27T00:30:36.137 回答
0

Javascript

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

或者

function window.onbeforeunload(){
   alert('This is the popup!');
}
于 2013-09-27T00:30:11.490 回答