2009-05-25 5 views
0

リンクがある.aspxページがあり、クリックするとwindow.openを使用して新しいウィンドウが開きます。Window.Openerと.NETコントロールのためにIDの問題を参照しています

整数を送り返し、その数値をテキストボックス(.NETコントロール)に入れる必要があります。

ポップアップウィンドウでwindow.openerを呼び出すと、テキストボックスのIDを参照する必要があります。問題は、コントロールツリーに物事を追加するとIDが時々変化することです。

テキストボックスのIDを新しいウィンドウから確実に参照するにはどうすればよいですか?

jQueryもインストールしましたが、新しいウィンドウからjQueryを使用できるかどうかはわかりません。

答えて

1

これは今

// original window script 
var windowHandle = window.open(...); 
windowHandle.top.otherWindowTextBox = document.getElementById('idOfTextBox); // or use jQuery 

を動作するはずですあなたはウィンドウをポップアップで、あなたはポップアップウィンドウを開いたページでテキストボックスへの参照を持っています。

// script in popup window. 
top.otherWindowTextBox.value = someInteger; 
+0

注:また 'top.otherWindowTextBox'が場合に発生する可能性があり未定義されていないことを確認する必要がありますポップアップを開いたウィンドウが閉じます。 – nickytonline

2

ポップアップから直接要素にアクセスする代わりに、ポップアップが呼び出せるページに関数を配置します。機能では、要素の実際のIDを挿入することができます。

ポップアップで
function setTextbox(value) { 
    document.getElementById('<%=TheTextBox.ClientID%>').value = value; 
} 

window.opener.setTextbox("Hello world!");