2014-11-07 4 views
0

다음 코드를 사용하여 클릭시 팝업을 열면 클릭 기능이 작동하지만 팝업이 페이지로드시로드되지 않습니다.jQuery onload 함수가 작동하지 않습니다.

<button id="popupBtn">Open Popup</button> 

<script> 
$("#popupBtn").on('click', openPopup); 
$("body").on('load', openPopup); 

function openPopup() { 
    var left = ($(window).width()/2)-(800/2), 
    top = ($(window).height()/2)-(300/2), 
    pop = window.open('http://www.google.com', "popup", "width=800, height=300, top="+top+", left="+left); 
return false; 
} 
</script> 

는 또한 1 또한

, 나는 5 초와 페이지로드에 openPopup 자동 부하를 얻을 수있는 방법 지연

$("#popupBtn").on('click', openPopup); 
//$("body").on('load', openPopup); 

$(document).ready(function() { 
    openPopup(); 
}); 

편집 같은 시도? 다음과 같은 작품이 될 것인가? 쉽게 학대 (그리고 역사적으로하고있다) 행동 때문에

$(document).ready(function() { 
    openPopup().delay(5000); 
}); 
+0

도움이 될 것입니다 후 것입니다 $ (창) CSTE 연구진 ('로드', openPopup) 같은 작품 ;. –

답변

1

대부분의 브라우저 '팝업 차단, 당신은 페이지로드에 팝업을 열 수 없습니다. 사용자가 이미 연결하고있는 click과 같은 명시적인 사용자 작업이 완료 될 때까지 기다려야합니다.

페이지로드시 openPopup 자동로드를 어떻게 지연시킬 수 있습니까?

할 수 있습니다하지, 같은 이유 : 당신은 예를 들어, 사용자 액션 (에 직접 응답, 이벤트의 동안 취급하지 나중에 제외하고는 대부분의 브라우저에 팝업을 열 수 없습니다 [말하기] 후 setTimeout).

위의 두 가지 요구 사항 모두에 대해 팝업 대신 페이지 내 콘텐츠를 사용하거나 절대적으로 배치 된 요소 등을 사용할 수 있습니다. 브라우저는 페이지의 경계에 머물러 있기 때문에이를 수행하지 못합니다. 당신이 "몸"대신 창을 사용하면 코드 아래

+0

jQuery가 5 초 후에 해당 버튼을 클릭하도록 강요하거나 페이지로드시 함수를 실행하는 대신 그와 같은 작업을 수행 할 수 있습니까? – lock

+0

@lock : 클릭이 프로그래밍 방식으로 트리거되는 경우 해당 유형의 팝업 차단기는 어떤 종류의 차단기입니까? 그 이유가있는 방해물을 찾아내는 대신 그 자리에서 작업하십시오. –

0

당신에게

$(document).ready(function() { 
    function openPopup() { 
        var left = ($(window).width()/2) - (800/2), 
         top = ($(window).height()/2) - (300/2), 
         pop = setTimeout(
            function() 
            { window.open('http://www.google.com', "popup", "width=800, height=300, top=" + top + ", left=" + left) } 
            , 5000); 
        return false; 
    } 

    $("#popupBtn").on('click', openPopup); 
    $(window).on('load', openPopup); 
}); 
관련 문제