2013-10-27 45 views
0

從邏輯上講,這似乎是正確的。然而,setCookie或getCookie函數根本不會觸發?JavaScript中增加瀏覽器cookie? (setCookie,getCookie方法)

cookie.js

function setCookie(c_name,value,exdays) { var exdate=new Date(); 
exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + 
((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
document.cookie=c_name + "=" + c_value; } 

function getCookie(c_name) 
{ 
var c_value = document.cookie; 
var c_start = c_value.indexOf(" " + c_name + "="); 
if (c_start == -1) 
    { 
    c_start = c_value.indexOf(c_name + "="); 
    } 
if (c_start == -1) 
    { 
    c_value = null; 
    } 
else 
    { 
    c_start = c_value.indexOf("=", c_start) + 1; 
    var c_end = c_value.indexOf(";", c_start); 
    if (c_end == -1) 
    { 
c_end = c_value.length; 
} 
c_value = unescape(c_value.substring(c_start,c_end)); 
} 
return c_value; 
} 

的index.php

var newCookie = parseInt(getCookie("liked_count")); 
if(newCookie != null && newCookie != ""){ 
newCookie += 1; 
setCookie("liked_count",newCookie,5); 
}else{ 
setCookie("liked_count",1,5); 
} 

不管它後面的if語句的一側,沒有設置cookie不管。從我可以告訴沒有錯誤或警告,所以它可能會找不到我的cookies.js文件中的setCookie和getCookie函數?

cookies.js文件成功定位,所以我在我的智慧在這裏結束。

<head> 
<script type="text/javascript" src="assets/js/cookies.js"></script> 
</head> 

任何幫助將不勝感激!

編輯:

噢,對不起,這是令人尷尬的......原來,該cookie.js文件已被緩存和我實際上移動文件的位置。這很簡單。對不起,浪費時間!

+0

說,如果功能是射擊最簡單的方法是使用'的console.log讓它們輸出的東西到控制檯'。你也可以'提醒',但這有點突兀! – Evan

+0

console.log中沒有顯示,但是當我檢查瀏覽器中的元素時,代碼顯示在那裏。 – ReQwire

+0

你可以把它放在一個jsFiddle嗎? – Evan

回答

2

您遇到的問題是在你使用的:如果失敗

var newCookie = parseInt(getCookie("liked_count")); 

MDN parseInt Documentation

parseInt函數返回NaN。相反,下面一行:

if(newCookie != null && newCookie != ""){ 

你應該有

if(!isNaN(newCookie)) { 

http://plnkr.co/edit/2Nj5pj

+0

它仍然工作不管,但這種方式更清潔,可能更兼容。謝謝! – ReQwire