2011-02-08 1 views
3

Как получить этот скрипт только для запуска, если человек является новым посетителем сайта? Он запускается каждый раз, когда запрашивается страница, которая становится очень раздражающей.Показать jQuery popup раз за посетителя

//0 means disabled; 1 means enabled; 
var popupStatus = 0; 

function loadPopup(){ 
    //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 popupHeight = $("#popupContact").height(); 
    var popupWidth = $("#popupContact").width(); 
    //centering 
    $("#popupContact").css({ 
     "position": "absolute", 
     "top": windowHeight/2-popupHeight/2, 
     "left": windowWidth/2-popupWidth/2 
    }); 
    //only need force for IE6 

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

} 


$(document).ready(function(){ 

    //LOADING POPUP 
    //Click the button event! 
     //centering with css 
     centerPopup(); 
     //load popup 
     loadPopup(); 

    //CLOSING POPUP 
    //Click the x event! 
    $("#popupContactClose").click(function(){ 
     disablePopup(); 
    }); 
    //Click out event! 
    $("#backgroundPopup").click(function(){ 
     disablePopup(); 
    }); 
    //Press Escape event! 
    $(document).keypress(function(e){ 
     if(e.keyCode==27 && popupStatus==1){ 
      disablePopup(); 
     } 
    }); 

}); 

ответ

4

установить установленный файл cookie в конце сеанса со значением 1 или истинным или любым другим. Затем найдите cookie. Если он существует, не показывайте его.

+0

Какой код следует использовать? –

+1

google для функции cookie чтения/записи. Там миллион. Я считаю, что есть даже плагин jquery для чтения/записи файлов cookie. Но давайте назовем их 'getCookie()' и 'setCookie()' например. Тогда в основном выполните: 'if (getCookie ('cookiename') == false) {setCookie ('cookiename', 'true'); loadPopup(); } 'синтаксис, очевидно, будет меняться в зависимости от того, какие функции чтения/записи вы захватите, но это общий принцип: если cookie не существует, вызовите функцию popup и установите cookie. –

0

Use cookies если вы хотите чисто клиентский метод. Установите флаг, в котором пользователь уже видел ваше вступление или что-то еще.

В случае сайта с некоторой аутентификацией это может быть обработано сервером.

Благословит вас Бог!

1

Как уже говорилось, вам нужно создать cookie при первом просмотре пользователем страницы, а затем проверить, существует ли файл cookie при других посещениях.

JavaScript для создания файлов cookie не так просто, как может быть, потому что вам нужно установить строку, используя точный формат. Это проще использовать эти helper functions that can be found on Quirksmode:

function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

Тогда в вашем коде все, что вам нужно сделать, это:

if(readCookie("popupShown") == null) { 
    // Create cookie for 30 days 
    createCookie("popupShown", 1, 30); 
    yourPopupFunction(); 
} 
Смежные вопросы