jtr*_*ick 6 javascript forms dom target
我有一个表单在提交时打开一个新窗口:
<form id="form-id" target="_blank">
Run Code Online (Sandbox Code Playgroud)
我想通过javascript访问新创建的窗口,而无需手动为目标生成唯一名称,也无需使用其他方法打开窗口.
似乎必须有一个简单的方法来做到这一点,但我找不到一个能在我的具体情况下工作的方法.
相反,_blank您可以使用新窗口的名称。
<form id="form-id" target="newName">
Run Code Online (Sandbox Code Playgroud)
然后你可以在 JS 中使用它:
var newWindow = window.open(null, 'newName');
Run Code Online (Sandbox Code Playgroud)
我不能 100% 确定这在所有浏览器中都有效,但 Firefox 似乎会在或上的属性导致打开新窗口window.opener时进行设置。因此,您可以走另一个方向并从新窗口中找到原始窗口(假设您控制那里的代码;如果没有,那么我无法想象您无论如何都可以对窗口引用做很多事情)。target<a><form>
当然,新窗口中的代码可以做的事情之一是调用旧窗口中的函数,并传入其自己的window引用。
因此,具体来说,如果您有:
<form action=whatever target=_blank>
Run Code Online (Sandbox Code Playgroud)
在原始页面上,那么最终在新打开的窗口中的页面可以执行以下操作:
<head>
<script>
if (window.opener) {
window.opener.announceWindow( window );
}
</script>
Run Code Online (Sandbox Code Playgroud)
假设announceWindow()是原始页面上的一个函数,可能类似于:
function announceWindow( win ) {
// do stuff with "win", a newly-opened window
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2868 次 |
| 最近记录: |