부모창에서 자식창으로 값넘기기
본문
인터넷의 어느 고수님의 블로그에서 소스를 가져왔는데요..
자식창에서 부모창으로 값넘기는건 잘 되는데요..
이상하게 부모창에서 자식창으로 값보내는건(팝업창으로 전송) 스크립트 오류가 나네요..
오류: 정의되지 않음 또는 null 참조인 'document' 속성을 가져올 수 없습니다.
코드가 틀리진 않았을텐데요.. 왜 부모창에서 자식창으로 값던지기가 안될까요?
소스 함 봐주세요..
부모창 test1.htm
<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
<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
당연히 안되겠네요
1. 문제는
창을 열지도 않고서 winObject.document~~가 실행 될 수는 없습니다
된다고 하더라도 9행에서 페이지를 새로이 열어버리니 값이 남아 잇을 리가 없죠
8,9행 순서를 바꾸면 되겠지만 settings 값을 가져올 수 없으니 또한 에러입니다
2. 9행을 없애버리고 13행을 실행해서 창을 연 후에 14행을 실행하면 됩니다
답변을 작성하시기 전에 로그인 해주세요.