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