Categories
Javascript + jQuery

[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
	}
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다