web-dev-qa-db-fra.com

Définition de cookies à l'aide de JavaScript dans un fichier html local

J'ai l'arborescence de répertoires suivante:

+ folder1
|--- folder2
|------ page1.html
|--- page2.html

Si je place un cookie dans page1.html en utilisant JavaScript, quel est le chemin utilisé pour ce cookie?

Modifier:
Permettez-moi de mieux l'expliquer. Je travaille avec un fichier local. page1.html est accessible via /home/user/.../folder1/folder2/page1.html et non via une machine cliente utilisant un serveur HTTP.

Juste pour clarifier:
Il semble que certains navigateurs (comme Chrome) ne stockent pas de cookies lors de l'utilisation de file:///, mais Firefox et Internet Explorer le font.

35
Oscar Mederos

Depuis la page MDC pour document.cookie :

S'il n'est pas spécifié, [l'argument path] correspond par défaut au chemin actuel de l'emplacement actuel du document.

Donc dans votre cas, ce sera /folder1/folder2/.


Je n'ai pas vu initialement que vous aviez spécifié "local" dans le titre de la question - je ne sais pas si cela a été mis à jour pendant que j'écrivais ma réponse. Les cookies ne sont pas définis lors de la navigation à l'aide du file:/// protocole, selon le navigateur.

20
lonesomeday

Les navigateurs ne stockent pas de cookies pour le file:// protocole url, il échouera simplement et silencieusement à définir quoi que ce soit. Donc, si c'est vraiment "local" et non sur un domaine, vous pouvez avoir un problème.

16
Alex Wayne

Si vous êtes sur un Mac, vous pouvez fermer Chrome et le relancer comme ceci:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --enable-file-cookies

Vous pourrez ensuite définir des cookies sur les fichiers locaux.

9
Carl Sednaoui

définissez --enable-file-cookies pour chrome et cela devrait fonctionner pour vous. En outre, il y a certaines fonctionnalités que vous devrez définir "accepter tous les cookies" également pour que cela fonctionne, mais si vous le faites, assurez-vous de prendre du recul avant de revenir en ligne.

5
craniumonempty

Comme solution de contournement, vous pouvez utiliser Tampermonkey avec accès aux fichiers locaux ( Comment inclure des pages htm locales dans un script Tampermonkey? ) De cette façon, vous utiliserez le stockage de Tampermonkey et pourrez définir et obtenir vos données par les fonctions GM_getValue (données) et GM_setValue (données). Je l'ai utilisé pour ma page HTML locale, que j'ai utilisée comme alternative personnalisable à l'Explorateur Windows