2017-05-16 1 views
0

모달로 외부 링크를 여는 중입니다.window.open이 지연됨

$('[data-link]').on('click', function(event){ 
    event.preventDefault(); 
    var link = $(this).attr('href'); 
    window.open(link, 'newwindow', 'width=300, height=250'); 
}); 

을하지만 지연 함수 호출 내부 window.open 기능을 넣을 경우, 나는 내 브라우저에 메시지를 "팝업 차단"얻을 : 다음 코드는 잘 작동 그것은 '아무튼

$('[data-link]').on('click', function(event){ 
    event.preventDefault(); 
    var link = $(this).attr('href'); 
    _.delay(function(){ 
     window.open(link, 'newwindow', 'width=300, height=250'); 
    }, 0); 
}); 

지연이 얼마인지, 지연된 통화에서는 작동하지 않습니다. 왜 이런 일이 일어나고 어떻게 작동하게 할 수 있는지 아는 사람이 있습니까?

+0

당신은 팝업 차단제와 싸우고 있습니다. 너는 이기지 못할 것이다. – SLaks

+0

@SLaks 지연없이 그것을 싸울 필요는 없습니다. – AliBZ

답변

2

팝업 차단기는 에 사용자 이벤트에 대한 직접 응답의 팝업을 열 수 있습니다.

setTimeout()에 전화하면 더 이상 이벤트에 직접 응답하지 않고 통과 할 수 없습니다.

+0

감사합니다. 문서에 대한 링크도 추가 할 수 있습니까? – AliBZ

+0

https://developer.mozilla.org/en-US/docs/Popup_Window_Controls – SLaks

관련 문제