2009-05-25 2 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

참고 : 팝업에서

function setTextbox(value) { document.getElementById('<%=TheTextBox.ClientID%>').value = value; } 

: 함수에서 당신은 요소의 실제 ID를 삽입 할 수 있습니다 팝업 창이 열립니다. – nickytonline

2

팝업에서 요소에 직접 액세스하는 대신 팝업에서 호출 할 수있는 함수를 페이지에 넣습니다. top.otherWindowTextBox`이 경우 발생할 수있는 정의되지`당신이 또한 확인해야합니다 :

window.opener.setTextbox("Hello world!"); 
관련 문제