如何檢測 JavaScript Cookie 是否已停用?
本教程將教你如何使用 JavaScript 檢測網站上 Cookie 是否已啟用或停用。Cookie是計算機上包含資料的小型文字檔案。Web 伺服器在將網頁傳送到瀏覽器後終止連線,並完全忘記使用者。 “如何記住使用者資訊” 的挑戰導致了 Cookie 的發明。Cookie 可能包含訪問網站的使用者姓名。Cookie 會“記住”使用者在隨後訪問網站時的姓名。Cookie 允許您在網頁上儲存使用者資訊。
您的伺服器以 Cookie 的形式將某些資料傳輸到訪問者的瀏覽器。瀏覽器可能會接受Cookie。如果接受,則會在訪問者的硬碟上保留其純文字記錄。現在,當訪問者訪問您網站上的其他頁面時,瀏覽器會將相同的 Cookie 傳送到伺服器以進行檢索。檢索後,您的伺服器會知道並記住之前儲存的內容。
使用JavaScript,可以直接建立、檢索和修改 Cookie,並且過程簡單易行。可以限制 Cookie 的值、長度和名稱。每次從瀏覽器伺服器請求頁面時,所有 Cookie 資料都會立即傳送到應用程式伺服器。由於惡意使用者可以訪問此資訊,因此 Cookie 不應用於儲存敏感資訊,例如密碼或信用卡號。
讓我們首先了解如何在瀏覽器中檢查 Cookie 是否已停用。
步驟 1− 開啟您的Google Chrome瀏覽器並點選設定。在這裡,您可以看到您需要點選螢幕右上角的三個垂直點。
步驟 2− 將出現一個下拉選單,您必須從中點選設定。
步驟 3− 設定頁面開啟後,您需要點選隱私和安全,如下所示。
步驟 4− 隱私和設定頁面開啟後,我們需要點選 Cookie 和其他網站資料,如下所示。
步驟 5− 此頁面開啟後,我們可以將設定更改為使用者認為合適的任何選項。
在這裡,我們看到使用者選擇了某個設定。
讓我們看看檢測 JavaScript Cookie 是否已停用的不同方法。
使用 navigator.cookieEnabled() 函式
navigator.cookieEnabled 返回一個布林值,指示 Cookie 是否已啟用。此屬性是隻讀的。如果 Cookie 已啟用,則返回 true;否則返回 false。
語法
此函式的語法為:
if (navigator.cookieEnabled) { //Cookies Enabled; }
示例
在下面的示例中,我們將演示如何檢測網站的 JavaScript Cookie 是否已啟用或停用。在這裡,我們看到 JavaScript 中的navigator.cookieEnabled函式,它可以檢查瀏覽器中 Cookie 是否已啟用。
<html> <head> <script type="text/javascript"> function checkCookiesStats() { if(navigator.cookieEnabled) { document.getElementById("check").innerHTML="Cookies are enabled"; } else { document.getElementById("check").innerHTML="Cookies are disabled"; } } </script> </head> <body onload="checkCookiesStats()"> <h2>Check if cookies are enabled</h2> <p id="check"></p> </body> </html>
在上述輸出中,使用者可以看到該站點啟用了 Cookie,這顯示在使用者的螢幕上。
使用 Modernizr 庫
Modernizr 是一個超快速測試的集合——或者像我們所說的“檢測”。它們在網頁載入時執行,然後您可以使用結果根據使用者體驗量身定製。
語法
在檔案中插入庫:
<script src="modernizr.min.js" type="text/javascript">
在程式碼中使用
supportsCookie == false;
示例
在此示例中,我們正在使用 Modernizr 庫檢查瀏覽器中 JavaScript Cookie 是否已啟用。函式 supportsCookies() 檢查此站點上 Cookie 是否已啟用。
<html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js" integrity="sha512-3n19xznO0ubPpSwYCRRBgHh63DrV+bdZfHK52b1esvId4GsfwStQNPJFjeQos2h3JwCmZl0/LgLxSKMAI55hgw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> </head> <body> <h2> Detecting JavaScript cookies. </h2> <p id="demo"></p> <script> function supportsCookies() { try { // Create cookie document.cookie = 'cookietest=1'; var ret = document.cookie.indexOf('cookietest=') != -1; // Delete cookie document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT'; return true; } catch (e) { return false; } } document.getElementById("demo").innerHTML = supportsCookies(); </script> </body> </html>
此輸出清楚地顯示 JavaScript Cookie 已停用,並給出布林值 true。
以上兩種方法展示了使用者如何在 JavaScript 中檢查 Cookie 是否已停用。第一種方法使用內建的 JavaScript 函式,第二種方法使用庫和函式來幫助檢測 JavaScript Cookie 是否已啟用或停用。