Hướng dẫn how to check if cookies are enabled javascript - cách kiểm tra xem cookie đã được bật chưa javascript

Thuộc tính Navigator.cookieenables có thể được sử dụng để kiểm tra xem cookie hiện có được bật hay không.navigator.cookieEnabled property can be used to check whether cookies are currently enabled or not.

Cookie có thể được sử dụng cho mục đích theo dõi, vì vậy một số người dùng có thể thích vô hiệu hóa chúng trong trình duyệt của họ. Tuy nhiên, nếu bất kỳ ứng dụng web nào phụ thuộc vào cookie, thì nó sẽ không hoạt động như mong đợi.

Vì vậy, trước khi cố gắng đọc hoặc viết cookie với JavaScript, tốt hơn là kiểm tra xem cookie có được bật hay không. Nếu cookie bị vô hiệu hóa, thì người dùng có thể được thông báo để kích hoạt cookie để tiếp tục hoặc ứng dụng có thể tuân theo logic khác - như không sử dụng bất kỳ cookie nào.

Thay vì tự động giả định rằng cookie phải được bật theo mặc định, và sau đó dẫn đến một sự cố sau đó, tốt hơn là thực hiện kiểm tra trước.

Thuộc tính Navigator.Cookieenables có thể được sử dụng để kiểm tra xem cookie có được bật hay tắt hay không. Điều này trả về đúng nếu cookie được bật hoặc sai nếu cookie bị tắt.navigator.cookieEnabled property can be used to check whether cookies are enabled or disabled. This returns true if cookies are enabled, or false if cookies are disabled.

if[navigator.cookieEnabled] {
	// cookies are enabled
	// read, write and delete cookies
}
else {
	// cookies are disabled, show an error message to the user, or follow other alternative
}

Ví dụ trực tiếp

Cookie có được bật không?

Làm thế nào để phát hiện rằng JavaScript hoặc cookie bị vô hiệu hóa trong trình duyệt của người dùng và thông báo cho anh ta bất kỳ trợ giúp nào?

hỏi ngày 5 tháng 1 năm 2011 lúc 10:59Jan 5, 2011 at 10:59

Mahmoud Salehmahmoud SalehMahmoud Saleh

33K119 Huy hiệu vàng334 Huy hiệu bạc492 Huy hiệu Đồng119 gold badges334 silver badges492 bronze badges

2

Để kiểm tra cookie bạn có thể sử dụng:

function checkCookie[]{
    var cookieEnabled = navigator.cookieEnabled;
    if [!cookieEnabled]{ 
        document.cookie = "testcookie";
        cookieEnabled = document.cookie.indexOf["testcookie"]!=-1;
    }
    return cookieEnabled || showCookieFail[];
}

function showCookieFail[]{
  // do something here
}


// within a window load,dom ready or something like that place your:
checkCookie[];

Và để kiểm tra JavaScript, hãy sử dụng thẻ

function checkCookie[]{
    var cookieEnabled = navigator.cookieEnabled;
    if [!cookieEnabled]{ 
        document.cookie = "testcookie";
        cookieEnabled = document.cookie.indexOf["testcookie"]!=-1;
    }
    return cookieEnabled || showCookieFail[];
}

function showCookieFail[]{
  // do something here
}


// within a window load,dom ready or something like that place your:
checkCookie[];
7 với một số loại tin nhắn bên trong

Đã trả lời ngày 5 tháng 1 năm 2011 lúc 11:01Jan 5, 2011 at 11:01

Robjmillsrobjmillsrobjmills

Phim huy hiệu vàng 18.2K1515 gold badges74 silver badges120 bronze badges

7

Cập nhật [ngày 25/6/18]:

Rất nhiều bài viết này, bao gồm cả của tôi, đang lấy đoạn trích từ Modernizr. Tất cả cuối cùng họ sẽ trở nên lỗi thời khi mã hiện đại được cập nhật.

Tôi nghĩ rằng câu trả lời tốt nhất cho câu hỏi này là sử dụng trực tiếp hiện đại.

if [Modernizr.cookies] {
  // supported
} else {
  // not-supported
}

Câu trả lời gốc [5/11/17]:

Điều này được lấy trực tiếp từ Modernizr và hoạt động trong nhiều trình duyệt hơn các giải pháp khác trong bài đăng này.

//github.com/Modernizr/Modernizr/commit/33f00fbbeb12e92bf24711ea386e722cce6f60cc

function checkCookie[]{
    // Quick test if browser has cookieEnabled host property
    if [navigator.cookieEnabled] return true;
    // 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 ret;
}

Đã trả lời ngày 11 tháng 5 năm 2017 lúc 18:57May 11, 2017 at 18:57

Nô -ê Solomonnah SolomonNoah Solomon

1.23315 huy hiệu bạc23 Huy hiệu đồng15 silver badges23 bronze badges

Vì phát hiện cookie không hoạt động trong IE 11, tôi đề xuất cách tiếp cận hiện đại:

function areCookiesEnabled[] {
    try {
      document.cookie = 'cookietest=1';
      var cookiesEnabled = document.cookie.indexOf['cookietest='] !== -1;
      document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
      return cookiesEnabled;
    } catch [e] {
      return false;
    }
}

//github.com/Modernizr/Modernizr/blob/master/feature-detects/cookies.js

McMimik

1.12912 Huy hiệu bạc 30 Huy hiệu Đồng12 silver badges30 bronze badges

Đã trả lời ngày 30 tháng 1 năm 2018 lúc 12:11Jan 30, 2018 at 12:11

ZymotikzymotikZymotik

5.5643 Huy hiệu vàng36 Huy hiệu bạc46 Huy hiệu đồng3 gold badges36 silver badges46 bronze badges

3

Giả sử JavaScript được bật, điều này sẽ cho bạn biết nếu cookie có được bật hay không. Làm việc trong các trình duyệt cũ.

// returns 1 or 0 instead of true or false. Returns null if inconclusive.
function cookiesEnabled[] {
    var i, j, cookies, found;
    if [navigator.cookieEnabled===false] return 0;
    document.cookie = 'testcookiesenabled=1';
    for [i=0; i

Bài Viết Liên Quan

Chủ Đề