front/JS

[JS] 동적으로 전역변수로 선언해서, 동일 팝업창 제어하기

배고파요 2023. 12. 24. 17:04
728x90

처음에는 eval() 로 하려고 했는데,
eval 은 전역변수로 이미 선언이 되어 있는 거에 바꿔치기 할 수 있는 거라서,
내가 원하는 데로 안되더라… ㅠㅠ

그래서 찾아보다 eval  대신에 window[] 를 사용 했음.


openPopup(“/custom/getInfo.do?mid=0001”, “_blank”, “”); // 첫번째 탭으로 계속 바뀜.
openPopup(“/custom/getInfo.do?mid=0002”, “_blank”, “”); // 두번째 탭으로 계속 바뀜.


function openPopup(url, type, size){
	var winPopId = “winPopId”+ (url.split(“?”)[1]).replace(“mid=“, “winPopId”);
	console.log(winPopId) // result :: winPopId0001 
	
	if( window[winPopId] != null ){ //같은 팝업창 여러개 안 뜨게 함.
		(window[winPopId]).close(); // 만약 기존 팝업창이 있으면 닫음.
	}
	
	if(size != null){
		window[winPopId] = window.open(url, type, size);
	}else{
		window[winPopId] = window.open(url, type);
	}
}






https://mylife365.tistory.com/m/241

728x90