如何检测 JavaScript Cookies 是否被禁用?

javascriptweb developmentfront end technology

本教程将教您如何使用 JavaScript 检测网站上的 cookies 是否已启用或禁用。Cookies 是计算机上包含数据的小型文本文件。Web 服务器在将网页发送到浏览器后会终止连接,并完全忘记用户。"如何记住有关用户的信息"的挑战导致了 cookies 的发明。Cookie 可能包含访问网站的用户的姓名。Cookie 会"记住"用户的姓名,以便随后访问网站。Cookie 允许您在网页上存储用户信息。

以 cookie 的形式,您的服务器将某些数据传输到访问者的浏览器。cookie 可能会被浏览器接受。如果接受,则其纯文本记录将保留在访问者的硬盘上。现在,当访问者访问您网站上的其他页面时,浏览器会将相同的 cookie 发送到服务器以供检索。一旦恢复,您的服务器就会知道并记住之前保存的内容。

使用 JavaScript,可以直接创建、检索和修改 cookie,这个过程简单易行。可以限制 cookie 的值、长度和名称。当从浏览器服务器请求页面时,所有 cookie 数据都会立即发送到应用程序服务器。由于恶意用户可以访问此信息,因此不应使用 cookie 来存储密码或信用卡号等敏感信息。

让我们首先看看如何在浏览器中检查 cookie 是否被禁用。

步骤 1 - 打开您的 Google Chrome 浏览器并单击设置。在这里,我们可以看到你必须点击屏幕右上角的三个垂直点。

步骤 2 − 会有一个下拉菜单,你必须从那里点击"设置"。

步骤 3 − 打开"设置"页面后,你必须点击隐私和安全,如下所示。

步骤 4 − 打开"隐私和设置"页面后,我们必须单击"Cookie 和其他站点数据",如下所示。

步骤 5 − 打开此页面后,我们可以将设置更改为用户似乎想要的任何选项适合。

在这里,我们看到用户选择了某个设置。

让我们看看检测 JavaScript cookies 是否被禁用的不同方法。

使用 navigator.cookieEnabled() 函数

navigator.cookieEnabled 返回一个布尔值,指示是否启用了 cookies。该属性是只读的。如果启用了 cookies,则返回 true;否则返回 false。

语法

此函数的语法为 −

if (navigator.cookieEnabled) {
    //Cookies Enabled;
}

示例

在下面的示例中,我们将演示如何检测网站是否启用或禁用了 JavaScript cookies。在这里,我们看到 JavaScript 中的 navigator.cookieEnabled 函数,该函数可以检查浏览器中是否启用了 cookies。

<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 cookies。函数 supportsCookies() 检查此网站上是否启用了 cookies。

<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 cookies 已被禁用并给出布尔值 true。

以上两种方法展示了用户如何在 JavaScript 中检查 cookies 是否被禁用。第一种方法使用内置 JavaScript 函数,第二种方法使用库和函数来帮助检测 JavaScript cookies 是启用还是禁用。


相关文章