2009-12-13 2 views
0

Я показываю div на своем сайте, и я хочу только отобразить этот div 5 раз, что пользователь посетил мой сайт. Таким образом, после 5 раз, он больше не будет показывать div.javascript cookie, немного помогите пожалуйста

Я могу сделать это с печеньем. Но я только знаком с PHP. Javascript не моя сильная сторона.

Есть ли у кого-нибудь короткий кусок кода, чтобы установить куки-файл, увеличить его для каждого посещения, а если значение больше 5, то больше не показывать DIV?

Благодаря

ответ

0

допустим, что вы иметь переменные посещения в файлах cookie, в основном вы используете что-то похожее на это

function getCookie(c_name) 
{ 
if (document.cookie.length>0) 
    { 
    c_start=document.cookie.indexOf(c_name + "="); 
    if (c_start!=-1) 
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start); 
    if (c_end==-1) c_end=document.cookie.length; 
    return unescape(document.cookie.substring(c_start,c_end)); 
    } 
    } 
return ""; 
} 

var visits = getCookie("visits_number"); 

if (visists > 5) 
    document.getElementById("your_div_name").setAttribute("style", "visibility: hidde"); 
+0

Не используйте 'setAttribute' в HTML-документе. В IE много ошибок, один из которых заключается в том, что 'style' не будет работать. Предложите 'getElementById (...). Style.display = 'none''. – bobince

0

Quirksmode has an article discussing cookies, который также включает в себя три очень удобные вспомогательные функции (прокрутите вниз до дна). Прочтите статью, и все это станет ясно.

Просто помните, что вся информация хранится в виде строки и, следовательно, извлекается в виде строки. Поэтому перед выполнением каких-либо операций над данными вам обязательно нужно выполнить ручную манипуляцию вручную. Смотрите здесь:

var x = 1; 
createCookie("myVar", x); 

var newX = readCookie("myVar") + 1; 

alert(newX); // "11" 

// --- instead, do this: --- 

var newX = parseInt(readCookie("myVar"), 10) + 1; 
0

Никто не будет иметь точно кусок кода, который вы просите, но это должно быть легко составить его самостоятельно, исходя из этих 2 необходимых функций:

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 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; 
} 
Смежные вопросы