автоматическое всплывающее окно при загрузке без использования атрибута onload в теге body

#javascript #popup

#javascript #всплывающее окно

Вопрос:

Не могли бы вы, пожалуйста, дать несколько ссылок? Когда я гуглю, всплывают все сайты со спамом!

Комментарии:

1. Я рад, что блокировщики всплывающих окон блокируют это.

Ответ №1:

Вы можете сделать это с помощью load события для window объекта:

Стиль DOM0:

 window.onload = function() {
    alert("But please don't.");
};
  

Или с использованием методов DOM2:

 if (window.addEventListener) { // DOM2 standard
    window.addEventListener('load', handler, false);
}
else if (window.attachEvent) { // Fallback for older IE versions
    window.attachEvent('onload', handler);
}
function handler() {
    alert("But again, please don't.");
}
  

Как говорится на http://pastie.org , пожалуйста, используйте эту информацию в ваших поисках спасения человечества, а не в ваших злых заговорах по захвату мира.

Ответ №2:

Не совсем ясно, то ли вы просто не хотите использовать атрибут onload, просто не для элемента body, то ли вы вообще не хотите использовать событие onload.

Ответ Т. Дж. Краудерса дает несколько хороших примеров использования прослушивателей событий, что является лучшим способом сделать это.

Если по какой-либо причине вы вообще не хотите использовать событие onload, вы могли бы поместить тег script в HTML непосредственно перед тегом с предупреждением внутри него. Вы не должны делать этого ни для чего в рабочей среде, хотя … и это не будет делать то же самое, что body.onload…

Ответ №3:

Я получил код!

Я копирую вставленный точный код, который сработал……

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js" type="text/javascript"></script>   
<script src="http://dinhquanghuy.110mb.com/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
         var popupStatus = 0;

//loading popup with jQuery magic!
function loadPopup(){
    centerPopup();
    //loads popup only if it is disabled
    if(popupStatus==0){
        $("#backgroundPopup").css({
            "opacity": "0.7"
        });
        $("#backgroundPopup").fadeIn("slow");
        $("#popupContact").fadeIn("slow");
        popupStatus = 1;
    }
}

//disabling popup with jQuery magic!
function disablePopup(){
    //disables popup only if it is enabled
    if(popupStatus==1){
        $("#backgroundPopup").fadeOut("slow");
        $("#popupContact").fadeOut("slow");
        popupStatus = 0;
    }
}

//centering popup
function centerPopup(){
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;  
    var windowHeight = document.documentElement.clientHeight;  
    var windowscrolltop = document.documentElement.scrollTop; 
    var windowscrollleft = document.documentElement.scrollLeft; 
    var popupHeight = $("#popupContact").height();
    var popupWidth = $("#popupContact").width();
    var toppos = windowHeight/2-popupHeight/2 windowscrolltop;
    var leftpos = windowWidth/2-popupWidth/2 windowscrollleft;
    //centering
    $("#popupContact").css({
        "position": "absolute",
        "top": toppos,
        "left": leftpos
    });
    //only need force for IE6

    $("#backgroundPopup").css({
        "height": windowHeight
    });

}


//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){
    if ($.cookie("anewsletter") != 1) {    

        //load popup
        setTimeout("loadPopup()",5000);    
    }        
    //CLOSING POPUP
    //Click the x event!
    $("#popupContactClose").click(function(){
        disablePopup();
        $.cookie("anewsletter", "1", { expires: 7 });
    });
    //Click out event!
    $("#backgroundPopup").click(function(){
        disablePopup();
        $.cookie("anewsletter", "1", { expires: 7 });
    });
    //Press Escape event!
    $(document).keypress(function(e){
        if(e.keyCode==27 amp;amp; popupStatus==1){
            disablePopup();
            $.cookie("anewsletter", "1", { expires: 7 });
        }
    });

});
</script>