2011-04-12 78 views
4

HTML鏈接:刪除或通過Javascript重置瀏覽器cookie

<a href="javascript:del_cookie(name);">Logout</a>
<a href="javascript:delete_cookie(rememberKeepMeLoggedIn);">Logout</a>
<a href="javascript:eraseCookie(name);">Logout</a>

<a href="#" onclick="del_cookie(name);">Logout</a>
<a href="#" onclick="delete_cookie(rememberKeepMeLoggedIn);">Logout</a>
<a href="#" onclick="eraseCookie(name);">Logout</a>

的Javascript:

功能delete_cookie(rememberKeepMeLoggedIn){
變種cookie_date =新日期();
cookie_date.setTime(cookie_date.getTime() - 1);
document.cookie = rememberKeepMeLoggedIn + =「=; expires =」+ cookie_date.toGMTString();
}

函數del_cookie(名稱){ 的document.cookie =「acceptsCookies =;到期日=星期四,1970年1月1日00:00:00 GMT;';
window.location的= 「http://www.smugmug.com/logout.mg?goTo=#
}

函數eraseCookie(名稱){ VAR餅乾= document.cookie.split( 「;」); (var i = 0; i < cookies.length; i ++)
erase(cookie [i] .split(「=」)[0]);
}

如何刪除或重置一個cookie名爲 「UP-759283」?
下面的語法看起來不錯嗎?

這是我的javascript函數:

功能del_cookie(){
的document.cookie = UP-759283 +'=;到期時間=星期四,01年1月1日00:00:01 GMT;';
}

的HTML URL標註
<a href="javascript:del_cookie(); document.location.reload();">Logout</a>

回答

3

請問下面的語法好看嗎?

否;只需通過JSLint運行你的代碼,你就會看到。更改

document.cookie = UP-759283 +'=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 

document.cookie = 'UP-759283=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 

按照該MDC document.cookie docs,餅乾由到期時間設定爲零刪除:

document.cookie = 'UP-759283=; expires=Thu, 01 Jan 1970 00:00:00 GMT;'; 

其他參考:cookies @ quirksmode

+2

無用的字符串連接是無用的。另外如果本地機器時間設置爲1965年? – Raynos 2011-04-12 15:52:02

+1

@Raynos:將您的機器時間設置爲1965年和[自己嘗試](http://jsfiddle.net/mattball/mJLZj/)。在Windows 7上,我無法早於1980年1月1日設置系統時鐘。 – 2011-04-12 16:06:00

+0

@MattBall我必須瞭解cookie如何工作> _ _>。我假設你的答案會起作用。無論如何,如果您將系統時鐘設置爲1965,那麼很多代碼都會中斷。 – Raynos 2011-04-12 16:07:42