티끌모아 개발

부모창에서 자식창으로 값 전달. 본문

javascript

부모창에서 자식창으로 값 전달.

JKimKorea 2021. 9. 30. 15:56

처음에 

pageFunc.sub_getOlap_submitdone = function(e) {

				olap_url = "/comm/cm/include/formTest.html"; 
				var olapWin = window.open(olap_url, "_blank", "width=1024px,height=600px,left=200px,top=10px,resizable=yes,scrollbars=yes");
		
				olapWin.document.getElementById("getVal").value="값전달 성공!!!";
			};
			
		};

와같이 

 

olapWin.document.getElementById("getVal").value="값전달 성공!!!";

 

 

를 써서 html(jsp파일도 마찬가지) 파일로 전달하려고 했는데 null 에러가 뜬다. 

에?? "값전달 성공!!!" 이라고 직접적으로 값을 썻는데 null이라니? 알고보니

해당 html파일에 값이 전달할  id="getVal" 을 못찾아서 셋팅할 장소가 null로 뜨는 것.

 

방법을 뒤지다 okky에 한분이 해답을 주셨다. 

 

바로 window.open을 하고 값을 셋팅하려고 하면 해당 윈도우 창이생성되기 전이라 해당 위치를 읽어들일 수 없어 null이 뜨는 것이라고 한다. 

 

해결>>> onload사용. 

	pageFunc.sub_getOlap_submitdone = function(e) {

				olap_url = "/comm/cm/include/formTest.html"; 
				var olapWin = window.open(olap_url, "_blank", "width=1024px,height=600px,left=200px,top=10px,resizable=yes,scrollbars=yes");

			olapWin.onload = function(){
				console.log("확인2");
				olapWin.document.getElementById("olapPw").value = "값전달 성공!!!";
				
			};
			
		};

위와같이 onload를 사용해서 화면 로딩후 작동하는 함수를 사용하니 값이 전달되었다.