2016-12-03 1 views
0

Bonjour à tous, j'ai une question à propos de javascript basé usercript en utilisant des cookies. Pour la première partie i utilisé un auj assez standard:Javascript: Problèmes pour obtenir des cookies à la partie principale

function createCookie(name,value,days,domain) { 
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+domain+"; path=/";} 

et plus tard quand je tente d'appeler la fonction:

createCookie('ppkcookie',Hours + ":" +Minutes,2,".examplesite.com/")

Ce code fonctionne très bien, mais il est seulement pour le site spécifique son extrait de sub.examplesite.com et j'en ai besoin comme sortie pour www.examplesite.com

J'ai regardé à travers les montagnes de messages, mais je ne peux pas comprendre comment modifier la fonction que je pourrais ajouter facilement le domaine.

Y at-il quelqu'un qui pourrait me dire ce que je fais mal parce que j'ai essayé comme 20 versions différentes de code mais rien ne semble résoudre ce problème.

+0

Vous ne pouvez pas affecter les cookies pour un site différent. La raison en est la sécurité – Mikkel

Répondre

0

Un cookie est défini à l'aide de la syntaxe suivante

name=value; expires=Sat, 03 Dec 2016 03:12:25 GMT; domain=.domain.com; path=/ 

Qu'est-ce que votre code est délivrer en sortie est

name=value; expires=Sat, 03 Dec 2016 03:12:25 GMT.domain.com; path=/ 

fonction createCookie modifié comme suit

function createCookie(name,value,days,domain) { 
    // add the following to set domain correctly 
    domain = domain ? "; domain=" + domain : ""; 
    // note, you should also "escape" the value 
    value = escape(value); 
    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+domain+"; path=/"; 
}