7

送信時に新しいウィンドウを開くフォームがあります。

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

ターゲットの一意の名前を手動で生成せずに、またウィンドウを開くための別の方法に頼らずに、 javascriptを介して新しく作成されたウィンドウにアクセスしたいと思います。

これを行うには簡単な方法が必要なようですが、特定の状況で機能する方法を見つけることができませんでした。

4

2 に答える 2

5

その代わりに_blank、新しいウィンドウに名前を付けることができます。

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

次に、次のようにしてJSで使用できます。

var newWindow = window.open(null, 'newName');
于 2012-11-26T17:17:16.553 に答える
4

これがすべてのブラウザで機能するかどうかは100%わかりませんが、Firefoxは、またはの属性によって新しいウィンドウが開くwindow.openerときに設定されるようです。したがって、別の方向に進んで、新しいウィンドウから元のウィンドウを見つけることができます(そこでコードを制御していると仮定します。そうでない場合は、とにかくウィンドウ参照で多くのことができるとは想像できません)。target<a><form>

もちろん、新しいウィンドウのコードで実行できることの1つは、古いウィンドウの関数を呼び出して、独自の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
}
于 2012-11-26T18:38:30.610 に答える