[Javascript] 팝업 차단 피하기

User action이 있을 때 popup을 띄우는 것은 허용된다. ex) click 등
ajax 처리를 하는 경우에도 callback 함수 바깥에서 띄우면 된다.

안 되는 경우

// 클릭 이벤트 핸들러
function didClick() {
	$.ajax({
		url: "someurl.php",
		success: function() {
			window.open("popup.html"); // blocked
		}
	});
}

해결 방안

// 클릭 이벤트 핸들러
function didClick() {
	var result = false;
	$.ajax({
		url: "someurl.php",
		success: function() {
			result = true;
		}
	});

	if( result ) {
		window.open("popup.html"); // it will works
	}
}

댓글 남기기