2011-08-08 5 views
3

가 나는 것으로 나타났습니다 클릭에 대한 응답으로 새 창을 열려면, 파이어 폭스 또는 IE.에서는 setTimeout이

는 그러나, 나는 사용자가 링크에 대한 타이머를 만들고, 후회 할 수 있도록 리디렉션을 만들려면, 나는 이렇게 할 경우 :

$(".sitelink_external").click(function(e){ 
    e.preventDefault(); 
    setTimeout("window.open(redirectUrl,'_blank')", timer * 1000); 
}); 

그것은 팝업 차단기를 호출하고, 내가 원하는 방식으로 팝업을 열지 못합니다, 어떤 생각을 어떻게 해결할 수 있습니까?

편집 : 대답은 훌륭하지만 문제가 해결되지 않은 것은 같은 방식으로 이전에 작동했기 때문입니다.

+4

아, 이벤트 처리기의 팝업 열기가 OK라는 정책 규칙에 위배되는 것으로 의심됩니다. 사용자가 트리거했지만 비동기 타이머 이벤트의 이벤트는 아닙니다. – Alnitak

답변

0

변경의 setTimeout 호출 대신이 작업을 수행합니다 :

setTimeout(function() { window.open(redirectUrl,'_blank') }, timer * 1000); 

당신은 변수 당신이 그 일을 한 방법을 전달할 수 없습니다 (그리고이 될 것입니다 문자열이 아닌 함수를 전달하는 데 일반적으로 더 낫다 eval'd)

관련 문제