2012-08-01 25 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

相關問題