HOWTO · JavaScript
使用 JavaScript 清除所有 Cookie
本文介紹如何使用 JavaScript 清除所有 cookie。
本頁內容
本文將幫助你使用 JavaScript 清除所有 cookie。
Cookies 允許客戶端和伺服器通過 HTTP 通訊和傳輸資訊。即使在使用無狀態協議 HTTP 時,它也允許客戶端保留狀態資訊。
- 使用者瀏覽器每次後續訪問域時,都會在 HTTP 請求標頭中傳送有關 cookie 的資訊。
- 登入資訊、同意等引數等資訊改善和個性化使用者體驗。
使用 JavaScript 刪除當前域的所有 Cookie
當前文件中的 cookie 屬性用於更改使用 HTML DOM cookie 屬性購買的 cookie 的屬性。document.cookie 返回與當前文件關聯的所有以分號分隔的 cookie 的字串。
語法:
document.cookie = 'key=value';
下面的程式碼顯示瞭如何使用 JavaScript 刪除 cookie。該程式碼在線上編輯器上執行,以證明該程式碼只能刪除你網站生成的 cookie。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>
</title>
</head>
<body>
<main>
<script type="text/javascript">
document.cookie = "username=shiv";
document.cookie = "CONSENT=YES+IN.en+20170903-09-0";
function displayCookies() {
var displayCookies = document.getElementById("display");
displayCookies.innerHTML = document.cookie;
}
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
</script>
<button onclick="displayCookies()">Display Cookies</button>
<button onclick="deleteAllCookies()">Delete Cookies</button>
<p id="display"></p>
</main>
</body>
</html>
上面的程式碼有兩個限制。
- 設定了
HttpOnly標誌的 Cookie 不會被刪除,因為HttpOnly標誌會禁用 JavaScript 對 cookie 的訪問。 - 設定為路徑值的 Cookie 不會被刪除。 (雖然這些 cookie 出現在
Deleted下,但如果不為安裝路徑指定相同的值,則無法刪除它們。)
輸出:
當你點選顯示 Cookie 時,它將顯示 cookie。
你還可以在檢查器中檢視 cookie。
點選 Delete Cookies 後,它會刪除它,你必須再次點選顯示 cookies,看看它是否被刪除。
你還可以在檢查器中檢視它是否被刪除。