2013-09-19 3 views
3

У меня возникла большая проблема с моим кодом, я пытаюсь проверить, существует ли файл cookie, и если он существует, я не хочу, чтобы он что-либо делал.Как установить Javascript cookie на всех страницах/в глобальном масштабе?

Его прекрасно работать на page1, но когда я перейти к PAGE2 она перекрывает печенье, вместо того, чтобы не делать ничего (страницы из того же сайта)

Heres мой сценарий

function setCookie(c_name, value, exdays) { 
    var exdate = new Date(); 

    exdate.setDate(exdate.getDate() + exdays); 

    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 

    document.cookie = c_name + "=" + c_value; 
} 

function getCookie(c_name) { 
    var i, x, y, ARRcookies = document.cookie.split(";"); 

    for (i = 0; i < ARRcookies.length; i++) { 
     x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 
     y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 

     x = x.replace(/^\s+|\s+$/g,""); 

     if (x == c_name) { 
      return unescape(y); 
     } 
    } 
} 

var omgpost = getCookie("omgpost"); 

if (omgpost == null || omgpost == "") { 
    setCookie("omgpost", "1", 1); 
} else { 
    alert('cookie installed already'); 
} 

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

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

ответ

17

Set Cookie Path с помощью path=/

function setCookie(c_name,value,exdays) 
{ 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) 
           ? "" : "; expires="+exdate.toUTCString()) 
           + "; path=/"; 
    document.cookie=c_name + "=" + c_value; 
} 
+2

Грустно, что это не проблема. :) –

+2

@MaryellenCandeew: Вы можете отметить этот ответ как принятый, нажав галочку рядом с ним. Это дает автору некоторую репутацию. – cHao

Смежные вопросы