채택완료

부모창에서 자식창으로 값넘기기

2017-10-25 (수) 18:01:21 6,847

인터넷의 어느 고수님의 블로그에서 소스를 가져왔는데요..

자식창에서 부모창으로 값넘기는건 잘 되는데요..

이상하게 부모창에서 자식창으로 값보내는건(팝업창으로 전송) 스크립트 오류가 나네요..

오류: 정의되지 않음 또는 null 참조인 'document' 속성을 가져올 수 없습니다.

코드가 틀리진 않았을텐데요.. 왜 부모창에서 자식창으로 값던지기가 안될까요?

소스 함 봐주세요..

부모창 test1.htm

Copy
<script>
var winObject = null;

function popupWindow(){
var settings ='toolbar=0,directories=0,status=no,menubar=0,scrollbars=auto,resizable=no,height=200,width=200,left=0,top=0';
winObject = window.open("test2.htm", "test2", settings);
}

function submitToWindow(){
winObject.document.all.text2.value = document.all.text1.value;
winObject = window.open("test2.htm", "test2", settings);
}
</script>
<input type=text name="text1">
<input type=button value="새창띄우기" onClick="popupWindow();">
<input type=button value="팝업창으로전송" onClick="submitToWindow();">

자식창  test2.htm

Copy
<script>
function submitToParent(){
opener.document.all.text1.value = document.all.text2.value;
}
</script>
<input type=text name=text2>
<input type=button value="부모창으로 전송" onClick="submitToParent()">
|

답변 1개

채택된 답변
+20 포인트

당연히 안되겠네요

1.  문제는

창을 열지도 않고서 winObject.document~~가 실행 될 수는 없습니다

된다고 하더라도 9행에서 페이지를 새로이 열어버리니 값이 남아 잇을 리가 없죠

8,9행 순서를 바꾸면 되겠지만 settings 값을 가져올 수 없으니 또한 에러입니다

2. 9행을 없애버리고 13행을 실행해서 창을 연 후에 14행을 실행하면 됩니다

답변을 작성하려면 로그인이 필요합니다.