我有一个表单在提交时打开一个新窗口:
<form id="form-id" target="_blank">
我想通过javascript,访问新创建的窗口,而无需手动为目标生成唯一名称,也无需借助打开窗口的替代方法。
似乎必须有一种简单的方法来做到这一点,但我找不到能够在我的特定情况下工作的方法。
答案 0 :(得分:4)
而不是_blank
,您可以使用新窗口命名。
<form id="form-id" target="newName">
然后你可以通过以下方式在JS中使用它:
var newWindow = window.open(null, 'newName');
答案 1 :(得分:4)
我并非100%确定这适用于所有浏览器,但当window.opener
或target
上的<a>
属性导致新版本时,Firefox似乎设置<form>
窗口打开。因此,您可以转向另一个方向并从新窗口中找到原始窗口(假设您在那里控制代码;如果没有,那么我无法想象您无论如何都可以对窗口引用做很多事情。)
当然,新窗口中的代码可以做的一件事就是在旧窗口中调用一个函数,传入自己的window
引用。
因此,具体来说,如果你有:
<form action=whatever target=_blank>
在原始页面上,然后在新打开的窗口中结束的页面可以执行此操作:
<head>
<script>
if (window.opener) {
window.opener.announceWindow( window );
}
</script>
假设announceWindow()
是原始页面上的一个函数,可能是:
function announceWindow( win ) {
// do stuff with "win", a newly-opened window
}