Javascript 获取对表单提交上空白目标窗口的引用

Javascript 获取对表单提交上空白目标窗口的引用,javascript,forms,dom,target,Javascript,Forms,Dom,Target,我有一个表单在提交时打开了一个新窗口: <form id="form-id" target="_blank"> 我希望通过javascript访问新创建的窗口,而无需手动为目标生成唯一名称,也无需使用其他方法打开窗口 似乎必须有一个简单的方法来实现这一点,但我找不到一个适合我具体情况的方法。而不是\u blank,然后您可以使用新窗口的名称 <form id="form-id" target="newName"> 我不是100%确定这在所有浏览器中都有效,但Fi

我有一个表单在提交时打开了一个新窗口:

<form id="form-id" target="_blank">

我希望通过javascript访问新创建的窗口,而无需手动为目标生成唯一名称,也无需使用其他方法打开窗口


似乎必须有一个简单的方法来实现这一点,但我找不到一个适合我具体情况的方法。

而不是
\u blank
,然后您可以使用新窗口的名称

 <form id="form-id" target="newName">

我不是100%确定这在所有浏览器中都有效,但Firefox似乎会在
上的
目标属性导致新窗口打开时设置
窗口。因此,您可以转到另一个方向,从新窗口中找到原始窗口(假设您控制那里的代码;如果没有,那么我无法想象您可以对窗口引用做多少工作)

当然,新窗口中的代码可以做的一件事就是调用旧窗口中的函数,传递它自己的
window
引用

因此,具体而言,如果您有:

<form action=whatever target=_blank>

谢谢Neal,但正如我在问题中提到的,对于具体情况,我必须使用target=“_blank”,理想情况下“不需要手动为target生成唯一的名称,也不需要使用其他方法打开窗口。”尽管我在问题中明确表示,但有三个人投票支持这个答案,以及在这里评论?在正常情况下,我会同意这是最好的方法,这就是为什么我在寻求帮助时明确排除了这种可能性。我想做的事能做到吗?谢谢。@非常感谢你的幽默,当我读到你的评论时,我真的笑了出来。为什么会有人投票否决这个问题?至少一句评论会有帮助。不要以为我没有调查过这件事;仅仅因为你不了解导致这个问题的情况,这并不能反映出提出这个问题的合理性。谢谢你,切中要害!这是一个非常有趣的解决方法。@jtrick不客气!就像我说的,我不确定这是否得到了广泛的支持;然而,这可能是因为
开瓶器
的东西真的很旧了。我不知道带有“target”的链接/表单会设置它,直到我尝试了你的问题:-)这似乎是处理这种情况的最佳方式。看起来,尽管window.opener不是官方规范的一部分,但它受到所有主流浏览器的支持,不太可能消失。。。
<form action=whatever target=_blank>
<head>
  <script>
    if (window.opener) {
      window.opener.announceWindow( window );
    }
  </script>
function announceWindow( win ) {
  // do stuff with "win", a newly-opened window
}