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

Creating an event when closing a window using Javascript

本文关键字:创建 事件 窗口 Javascript 使用      更新时间:2023-09-26

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

我的主窗体中的代码:

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

当在

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

请注意,如今更常见的是在同一窗口中为表单使用临时覆盖而不是弹出新窗口,并且还可以避免与弹出窗口阻止程序发生任何冲突,这些冲突可能会妨碍弹出新窗口。

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

Javascript

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

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