쪼렙 as! 풀스택

javascript 새 창 / 새탭 열 때, 팝업차단 관리 / 팝업차단 안당하기. 본문

개발 일지/Web & Server

javascript 새 창 / 새탭 열 때, 팝업차단 관리 / 팝업차단 안당하기.

코코앱 2019. 1. 23. 17:15


javascript 로 새로운 창을 열때, '팝업'차단에 걸릴 수 있기 때문에, 사용자에게 팝업 차단을 해제해달라고 처리할 수 있다.

const url = 'https://aaa.com';
const popup = window.open(url, '_blank');
if(!popup) {
alert('팝업 차단을 해제해주세요')
}else {
popup.focus()
}



테스트해보니, 아이폰에서는 이런식으로 할 수 없겠더라. 팝업차단을 해제해달라는 알림이 뜨기는 했지만, 실제로 팝업을 해제하려면, 사용자가 직접 설정 -> safari -> popupblock 뭐, 이런식으로 직접 차단을 해줘야 하니, 누가 그런일을 하겠는가!


그래서 구글링 해보니, 비동기방식으로 돌아가는 중에 팝업을 차단당하게 되있단다. 그러므로, 비동기 처리 하기 전에 일단 새창을 만들어버리고, 비동기 작업이 끝난 후에, url 을 설정해주면 된다고 한다!



var windowReference = window.open();

myService.getUrl().then(function(url) {
     windowReference.location = url;
});

출처 : https://stackoverflow.com/questions/20696041/window-openurl-blank-not-working-on-imac-safari




Comments