2011-09-23 126 views
1

这是一个脚本,用于将一些 html文件设置为cookie。当文档没有设置时,该文档如何检测cookie?

window.onload=init; 

function init() { 
var userName=""; 
if(document.cookie != "") { 
    username=document.cookie.split("=")[1]; 
    document.getElementById("name_field").value = username; 
} 

document.getElementById("name_field").onblur = setCookie; 
} 

function setCookie() { 
var exprDate = new Date(); 
exprDate.setMonth(exprDate.getMonth() + 6); 

var username = document.getElementById("name_field").value; 
document.cookie = "username=" + username + ";path=/;expires=" + exprDate.toGMTString(); 
} 

这与一些不同 HTML文件,(那些没有保存在过去的一个cookie),另一个脚本,检查是否有保存该文档的cookie。

window.onload = initTest; 

function initTest() { 
if(document.cookie == "") alert("No,cookies stored !"); 
else alert("cookies found !"); 
} 

出乎我的意料,结果当我运行与第二个脚本第二HTML文件,是饼干发现这是为什么?当那个文件没有保存一个cookie时,怎么来document.cookie != ""

回答

2

Cookie根据域和/或路径设置。

例子:

  • http://www.example.com/foo.html饼干:x=x; max-age=3600;是可见的http://www.example.com/*,但不是在http://other.example.com/
  • http://www.example.com/foo.html饼干:x=x; max-age=3600; domain=.example.com是可见的http://*.example.com/*http://example.com/*
  • HTTPS协议只: Cookie:x=x; max-age=3600; secure
  • 可以将路径更改为当前路径或任何父目录。默认路径是当前目录。例如:x=x; max-age=3600; path=/
+0

@ Suhail Gupta - Rob W所说的是* some * html文件可以设置可用于任何*不同的* html文件的cookie,只要它位于相同的域和cookie下(设置时它)并不局限于与*不同* html文件不同的路径。 – WTK