2012-08-01 44 views
0

我有这个在我的网页Javascript代码检查:试图设置cookie时令牌错误

<script type="text/javascript"> 
     function makeCookie(name) 
     { 
      alert("c is for cookie"); 
      days=30; // number of days to keep the cookie 
      var myDate = new Date(); 
      myDate.setTime(myDate.getTime()+(days*24*60*60*1000)); 
      expires="myDate.toUTCString(); 
      document.cookie="pull=" + name; 
      alert("c is for cookie"); 
     } 
    </script> 

然后一堆看起来类似于此列表项的头部分:

<a href="#tab2" onclick="makeCookie("LastName FirstName")">LastName FirstName</a> 

我没有收到提醒,也没有设置cookie。所以我知道我做错了什么。当我在Chrome中查看JavaScript控制台时,它也会给我带来令牌错误。所以我猜测我有一个悬挂支架,但我找不到它。

+1

那么,有在该线的单个开口引号:'到期=“myDate.toUTCString();',没有关联的闭引号 – Confusion 2012-08-01 18:47:18

+1

您是严重最好使用[测试和可信](HTTP ://www.quirksmode.org/js/cookies.html)cookie代码也是如此。你粘贴的是一堆开放而不是封闭的引用和新行 – mplungjan 2012-08-01 18:50:30

回答

0

它,因为你使用相同类型的报价为onclick因为你是这个参数makeCookie,所以它认为你正在关闭。第一组括号当你做“姓尝试:

<a href="#tab2" onclick='makeCookie("LastName FirstName")'>LastName FirstName</a> 
+0

那就是问题所在。感谢您的帮助。 – 2012-08-01 19:02:03

+0

没问题。快乐编码 – 2012-08-01 19:02:22

0

看看语法突出显示:onclick属性过早关闭,因为您试图在" -delimited属性中使用"。更改此:

<a href="#tab2" onclick="makeCookie("LastName FirstName")">LastName FirstName</a> 

这样:

<a href="#tab2" onclick="makeCookie('LastName FirstName')">LastName FirstName</a> 
1

JSLint显示了这种无与伦比的开放式报价首发:

expires = "myDate.toUTCString(); 
     ^

此外,在您的onclick值的报价都错了,你应该使用单引号内的JavaScript报价,以避免与双引号是已经存在的HTML属性模糊性。

<a href="#tab2" onclick="makeCookie("LastName FirstName")">LastName FirstName</a> 
            ^    ^
+0

我对此表示赞同,因为它解决了两种语法错误,但请添加正确的html。 – Esailija 2012-08-01 18:55:51

+0

@Esailija如文中所述,用单引号替换指示的双引号 – OrangeDog 2012-08-01 18:57:39

相关问题