2010-06-24 3 views
1

일반적으로 window.open을 사용하여 창을 열면 window.opener()를 사용하여 호출자 창에 액세스 할 수 있습니다. 모달 대화 상자 (window.showModalDialog)에서 비슷한 작업을 수행 할 수 있습니까?ModalDialog 창에서 오프너 창을 가져올 수 있습니까?

+0

관련 : http://msdn.microsoft.com/en-us/library/ms536759.aspx –

+1

답변은 링크에 있습니다. 나는 지금 당장 풀 대답을 할 수 없다. –

답변

4

당신은 MSDN 페이지에서 comment에 대한 showModalDialog (페카 덕분에),

[t] 그가 window.opener 방법은 오히려 개방 창에 대한 참조보다 null 반환을 읽을 수있다. 따라서 window.opener.location.refresh() (예 : showModalDialog을 사용하여 편집 대화 상자를 여는 경우)로 새로 고칠 수 없습니다. 당신이 원하는 모든 이 열리는 창마다 ModalDialog 닫히고를 새로 경우, 그 (오른쪽 showModalDialog에 대한 호출 후 window.location.refresh() 포함) 간단합니다. 그러나 의 경우에만 개봉 창이 새로 고침 (예 : 개 창을 새로 고치는 데 시간이 걸립니다.) 은 dialogArgument을 전달하여이를 수행 할 수 있습니다. dialogArgument으로 창 참조 자체를 전달하는

더 영리한 (내가 생각하는) 방법입니다. 호출 창에서 window.showModalDialog('newurl.asp', window)을 사용하십시오. 호출 된 대화 상자에서 var window_opener = window.dialogArguments으로 참조를 검색하십시오. 다이얼 변수 window_opener에 저장된 창 참조를 window.opener 대신, 호출 된 대화 상자에서 호출 창을 새로 고치려면 을 사용할 수 있습니다.

는 파이어 폭스와 ( 예를 들어) 크롬이 제한이 표시되지 않는 점에 유의하고, 정기적 창처럼 ModalDialogs 더 치료하기 위해 표시 마십시오. 이러한 브라우저 중 하나를 사용하여 테스트를 수행하는 경우 을 테스트하고 모든 브라우저에 에서 작동하도록 애플리케이션을 설정하는 것이 좋습니다.

+0

훌륭해, 고마워. – Rubans

관련 문제