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

使用Javascript关闭窗口时创建事件,javascript,php,jquery,forms,popup,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, scroll

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

我的主要形式的代码:

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(););
onClick=“cust=window.open('popup.php?count=&name\u id='+document.form1.name\u id.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>

Javascript

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

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

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


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

您可以通过javascript传递数据,只需将父窗口和该窗口中的元素作为目标,并从打开的窗口中插入一个值或其他内容。父窗口将是window.opener您检查过相关问题了吗?看起来很相似。这是否意味着当我单击窗口上的关闭按钮时,在进程终止之前,它可以使用此函数将数据发送回主窗体?我只需要将变量放在那里,还是必须与父窗口中的字段建立连接?我相信“当我单击窗口上的关闭按钮时,在进程终止之前,它可以使用此函数将数据发送回主窗体。”尽管我不太确定!HTML5规范说像
alert()
这样的函数调用可以从onbeforeunload忽略。@JackWilliams-是的,所以我建议您将示例更改为实际可行的函数。如果OP尝试您建议的代码只是为了看看它是否有效,他们可能会发现它不起作用。我可以推荐一个
console.log()
?我有点困惑。我正在考虑使用ajax将数据提交回父窗口,但我可以在卸载弹出窗口时执行此操作,还是必须调用window.close()?@marchemike-ajax用于与服务器通信,而不是与其他浏览器窗口通信。如果只想将数据放在另一个窗口中,请使用window.opener获取另一个窗口,然后访问该窗口的全局变量或DOM,并将数据放在另一个窗口中。
function window.onbeforeunload(){
   alert('This is the popup!');
}