如下代码...第一个老是不成功,第二个没有domain就可以...
哪里写错了吗??
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>new page</title>
    <script type="text/javascript" language="javascript">
      // <![CDATA[
      window.onload = function() {
        setCookie("abc" , "def", 9, "/", "127.0.0.1");
        setCookie("ijk" , "xyz", 9, "/");
        alert(document.cookie);
      }      function setCookie(name, value) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate()+(arguments.length>2?arguments[2]:7));
        var cookie = name+"="+encodeURIComponent(value)+"; expires="+exdate.toGMTString();
        cookie += ((arguments.length>3?("; path="+arguments[3]):"") + (arguments.length>4?("; domain="+arguments[4]):""));
        document.cookie = cookie;
      }
      // ]]>
    </script>
  </head>
  <body>
  </body>
</html>

解决方案 »

  1.   

    这样写也不行??我在XP SP3下测试FF3.6、IE8、chrome6、safari5、opera10,每个都行不...
    但如果把后面的domain=abcdefg.com去掉就可以...哪里出问题了吗??
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" language="javascript">
          // <![CDATA[
          window.onload = function() {
            document.cookie = "key=value;domain=abcdefg.com";
            alert(document.cookie);
          }
          // ]]>
        </script>
      </head>
      <body>
      </body>
    </html>
      

  2.   

    自行找到原因了...
    主楼的代码是可以的
    但必须访问
    http://127.0.0.1/xxx.htm
    才可以,而我之前测试的时候都是访问http://hostname/xxx.htm的方式
    而二楼的代码必须把domain修改为"domain=.abcdefg.com",且必须是以http://abcdefg.com/xxx.htm的方式访问了(此时只能先修改机器上的hostd文件了)
    感谢google!!不过它搜到的是百度空间里的文章(—_—b)
    http://hi.baidu.com/%CD%F5%D7%D36%BA%C5/blog/item/93272f3577082a87a71e127c.html
    感谢此人的文章,不过他文章里说的localhost的方式无法存储cookie,原因和我二楼的代码一样,domain必须是"domaim=.localhost"才行
    顺便一说,domain里一定不能有端口号,如果默认端口不是80的情况下,使用window.location.host来获取domain的话,会有端口号的
      

  3.   

    更正...我(是的,我是楼主的马甲,因为无法3连帖...)刚又测试了下,发现"domain=.localhost"的方式还真不行...但...我确实在发帖之前有测试过,是可以的,而且现在在IE8(chrome6、ff3.6)上测试不行,我在opera10上测试却是可以的...
    代码
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script type="text/javascript" language="javascript">
          // <![CDATA[
          window.onload = function() {
            document.cookie = "testcookie=cookie;domain=.localhost";
            alert(document.cookie);
          };
          // ]]>
        </script>
      </head>
      <body>
      </body>
    </html>
      

  4.   

    http://127.0.0.1/xxx.htm这是本地端访问方式,那如果在域名上呢。不是很理解。回头拿个代码测试下!
      

  5.   

    赋值Domain,必须是你的域名是这个Domain才会对
    否则抛异常
    比如,你的js domain设置成abc.com
    那么你的网站域名就可以使用abc.com,www.abc.com,以及所有二级域名、三级域名等
    同样,你放在127.0.0.1下测试或者localhost,它都会报错
      

  6.   

    我从另外一个链接打开相同名称的IE窗体时,会自动重写(覆盖)当前IE窗体,于是在此时设置cookie的domain为当前的document.domain(为某电脑的名称);
    不过,新打开的这个IE窗体(覆盖了之前的),仍然可以读取到原来的cookie值,怎么回事呢?
    注:由于情况特殊,不能设置expires让cookie过期。