2011-10-26 15 views
2

親からその上で何らかのメソッドを呼び出せるように、私が開いた子ウィンドウを参照したいと思います。これを行うには、ウィンドウへの参照を保持する必要があります。私が見つけたすべての例は、参照を次のように保持しています。Javascript:ポスティングで開いた子ウィンドウを参照する方法

var windowRef = window.open(...); 

しかし、私はwindow.openを使用しません。

var frmMain = document.forms['frmMain']; 
frmMain.action = "http://www.somedomain.com"; 
link.attr("href"); 
frmMain.target = "_blank"; 
frmMain.submit(); 

投稿を使用して開いているウィンドウを参照するにはどうすればよいですか?ありがとう!

+1

何とかウィンドウを開いておく必要があります。あなたのフォームだけを送信することはできません。他にどのようなコードを使用していますか? – Blazemonger

+0

いいえ、上記のコードはウィンドウを開きます。 "submit"メソッドはこれを行います。 – AndroidDev

答えて

1

target属性が実際の名前に設定されている限り、ウィンドウオブジェクトのopenメソッドは実際に参照を作成できます。

var frmMain = document.forms['frmMain']; 
frmMain.action = "http://www.somedomain.com"; 
link.attr("href"); 
frmMain.target = "myawsmwindow"; 
frmMain.submit(); 

var myawsmwindow = window.open("", "myawsmwindow"); // gets you a variable ref to the named window. 

編集:ここにデモjsfiddleがあります。

+0

この結果、2つのウィンドウが開きます。 "Submit"は1つのウィンドウを開き、window.openは2つ目のウィンドウを開きます。ウィンドウに同じ名前を使用していても問題ありません。送信と開くは2つの別々のコマンドです。そして、はい、私はこれを試しました。あなたの例では、空白のウィンドウが開きます。 – AndroidDev

+0

[間違いました](http://jsfiddle.net/REECq/1/) – kojiro

+0

@kojiro:既存のブラウザはすべてこの動作をしていますか?私はここでIEの動作が異なることを思い出しますが、私は現時点でテストすることができません。しかし、 'submit()'と 'window.open()'行が場所を切り替えると、もっと一貫していると思います。 –

関連する問題