কিভাবে একটি কুকি মুছবেন?


338

আমার কুকি তৈরির কাজটি কি সঠিক? আমি কীভাবে আমার প্রোগ্রামের শুরুতে কুকি মুছব? একটি সহজ কোডিং আছে?

function createCookie(name,value,days)
function setCookie(c_name,value,1) {
  document.cookie = c_name + "=" +escape(value);
}

setCookie('cookie_name',mac);

function eraseCookie(c_name) {
  createCookie(cookie_name,"",-1);
}

1
W3Schools এ কুকিজ জন্য ভাল ফাংশন আছে w3schools.com/js/js_cookies.asp । আপনি setCookie('name', 'value', 0)একটি কুকি মুছতে ব্যবহার করতে পারেন ।
পিট

উত্তর:


341

এটা চেষ্টা কর:

function delete_cookie( name, path, domain ) {
  if( get_cookie( name ) ) {
    document.cookie = name + "=" +
      ((path) ? ";path="+path:"")+
      ((domain)?";domain="+domain:"") +
      ";expires=Thu, 01 Jan 1970 00:00:01 GMT";
  }
}

বা:

function delete_cookie( name ) {
  document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

আপনি এটি সংজ্ঞায়িত করতে get_cookie()পারেন:

function get_cookie(name){
    return document.cookie.split(';').some(c => {
        return c.trim().startsWith(name + '=');
    });
}

2
আমি কীভাবে একটি ফাংশন সেট করব এবং আমার কুকিগুলি কী তা যাচাই করব এবং এটি এখনও শেষ হচ্ছে কিনা?
কেনেডি

61
get_cookie সংজ্ঞায়িত করা হয়নি
ক্রেকার

9
ফাংশনের দ্বিতীয় সংস্করণটি আর কাজ করে না jsfizz jsfiddle.net/b27Lgxgf/1 দেখুন । @ লুকা'র আনসার কাজের জন্য পদ্ধতি
তাসোস কে।

6
এটি কীভাবে কাজ করার কথা? জাভাস্ক্রিপ্ট অন্তর্নির্মিত get_cookie()ফাংশন নেই।
মিশা পেরেকোভস্কি

4
@ মাইকাপেরাকোভস্কি আমি নিশ্চিত যে এটি কেবল স্থানধারক / আপনি যে কোনও জায়গায় সংজ্ঞায়িত করবেন এমন কোনও আসল ফাংশনের রেফারেন্স হিসাবে বোঝানো হয়েছিল।
জেসেলিগসোহন

114

এখানে Quirksmode একটি ভাল লিঙ্ক ।

function setCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function eraseCookie(name) {   
    document.cookie = name+'=; Max-Age=-99999999;';  
}


4
দ্রষ্টব্য: যদি কাজ না করে থাকে তবে নিশ্চিত হন pathযে সঠিক। দেখুন: developers.google.com/web/tools/chrome-devtools/manage-data/…
গায়ান Weerakutti

ডোমেন যুক্ত করা উচিত।
মাইকেল কাপুস্টে

3
এছাড়াও লক্ষণীয় যে পাথ এবং ডোমেন উভয়েরই সঠিক মান হওয়া দরকার।
এস্কো

পরীক্ষিত, পৃষ্ঠা লোড হওয়ার আগেও WKWebView এ পুরোপুরি কাজ করে। সমাধান ভাল কাজ।
পাশাএন

31

এই কাজ করবে?

function eraseCookie(name) {
    document.cookie = name + '=; Max-Age=0'
}

আমি জানি Max-Ageকুকি তৈরি করার সময় কুকি আইইতে সেশন কুকি হয়ে থাকে। কুকিজ মোছার সময় এটি কীভাবে কাজ করে তা নিশ্চিত নয়।


17

মজিলার ইউনিকোড সমর্থন সহ এখানে মুছে ফেলা কুকি কার্যকারিতা বাস্তবায়ন করা হল :

function removeItem(sKey, sPath, sDomain) {
    document.cookie = encodeURIComponent(sKey) + 
                  "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + 
                  (sDomain ? "; domain=" + sDomain : "") + 
                  (sPath ? "; path=" + sPath : "");
}

removeItem("cookieName");

যদি আপনি অ্যাংুলারজে ব্যবহার করেন তবে কুকিগুলি চেষ্টা করুন $ কমানো (নীচে এটি একই ধরণের পদ্ধতির ব্যবহার করে ):

$cookies.remove('cookieName');

17

গতকাল শেষ হওয়ার তারিখটি সেট করে আপনি এটি করতে পারেন।

এটিকে "-1" এ সেট করা কাজ করে না। এটি একটি কুকিকে সেশনকুকি হিসাবে চিহ্নিত করে।


যদি আপনি অন্য পৃষ্ঠায় কুকি সেট করেন এবং অন্য পৃষ্ঠা থেকে এটি মুছতে চেষ্টা করেন তবে আপনার উদাহরণটি কার্যকর হয় না। সেটটি কাজ করে, তবে এটি মুছতে পারে না।
chovy

2
আমি এটি ব্যবহার করে শেষ করেছি: github.com/cਹਰtl / jquery-cookie এবং আপনাকে পথ ব্যবহার করে মুছতে হবে: '/'
chovy

এটি বাদে একটি ভাল পদ্ধতির ... কেবলমাত্র সমাপ্তির সময় শূন্যে সেট করুন। এটি তাত্ক্ষণিকভাবে মেয়াদোত্তীর্ণ হওয়ার কারণ হবে এবং কারও কাছে বিভ্রান্ত হবে না ("কেন বিকাশকারী গতকালকে মেয়াদ শেষ করার সময় নির্ধারণ করেছিলেন? এটি কি ভুল ছিল, তারা কি এক দিনের আজীবন চাইত?")। কোডটি লিখুন যাতে এটি আরও সার্থক হয় এবং আপনার জীবনটি লাইনে কম বিভ্রান্ত হবে। আজকাল কোডিংয়ে এটি একটি অবমূল্যায়িত দর্শন ... এমনকি এমডিএন কোনও কুকি মোছার জন্য সমাপ্তির সময় শূন্যে নির্ধারণ করার পরামর্শ দেয়।
দুদেওয়াদ

10

একটি কুকি মুছে ফেলতে আমি এটি আবার খালি মান দিয়ে সেট করেছিলাম এবং 1 সেকেন্ডে শেষ হবে। বিশদ বিবরণে, আমি সর্বদা নিম্নলিখিত স্বাদগুলির মধ্যে একটি ব্যবহার করি (আমি দ্বিতীয়টি পছন্দ করি):

1।

    function setCookie(key, value, expireDays, expireHours, expireMinutes, expireSeconds) {
        var expireDate = new Date();
        if (expireDays) {
            expireDate.setDate(expireDate.getDate() + expireDays);
        }
        if (expireHours) {
            expireDate.setHours(expireDate.getHours() + expireHours);
        }
        if (expireMinutes) {
            expireDate.setMinutes(expireDate.getMinutes() + expireMinutes);
        }
        if (expireSeconds) {
            expireDate.setSeconds(expireDate.getSeconds() + expireSeconds);
        }
        document.cookie = key +"="+ escape(value) +
            ";domain="+ window.location.hostname +
            ";path=/"+
            ";expires="+expireDate.toUTCString();
    }

    function deleteCookie(name) {
        setCookie(name, "", null , null , null, 1);
    }

ব্যবহার:

setCookie("reminder", "buyCoffee", null, null, 20);
deleteCookie("reminder");

2

    function setCookie(params) {
        var name            = params.name,
            value           = params.value,
            expireDays      = params.days,
            expireHours     = params.hours,
            expireMinutes   = params.minutes,
            expireSeconds   = params.seconds;

        var expireDate = new Date();
        if (expireDays) {
            expireDate.setDate(expireDate.getDate() + expireDays);
        }
        if (expireHours) {
            expireDate.setHours(expireDate.getHours() + expireHours);
        }
        if (expireMinutes) {
            expireDate.setMinutes(expireDate.getMinutes() + expireMinutes);
        }
        if (expireSeconds) {
            expireDate.setSeconds(expireDate.getSeconds() + expireSeconds);
        }

        document.cookie = name +"="+ escape(value) +
            ";domain="+ window.location.hostname +
            ";path=/"+
            ";expires="+expireDate.toUTCString();
    }

    function deleteCookie(name) {
        setCookie({name: name, value: "", seconds: 1});
    }

ব্যবহার:

setCookie({name: "reminder", value: "buyCoffee", minutes: 20});
deleteCookie("reminder");

8

আপনি যদি ম্যানুয়ালি কুকি তৈরি করেন তবে অন্যান্য সমাধানগুলির মধ্যে কিছু কাজ নাও করতে পারে।

একটি কুকি মুছে ফেলার জন্য এখানে একটি দ্রুত উপায়:

document.cookie = 'COOKIE_NAME=; Max-Age=0; path=/; domain=' + location.host;

6

জাভাস্ক্রিপ্টের মাধ্যমে তৈরি একটি কুকি মুছে ফেলতে আমার সমস্যা হয়েছে এবং আমি হোস্টটি এটির কাজ করার পরে (এটি দেখার জন্য নীচের কোডটি স্ক্রোল করুন location.host)। কোনও ডোমেনে কুকিগুলি সাফ করার পরে ফলাফলগুলি দেখার জন্য নীচে চেষ্টা করুন:

if (document.cookie.length==0)
{
 document.cookie = 'name=example; expires='+new Date((new Date()).valueOf()+1000*60*60*24*15)+'; path=/; domain='+location.host;

 if (document.cookie.length==0) {alert('Cookies disabled');}
 else
 {
  document.cookie = 'name=example; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain='+location.host;

  if (document.cookie.length==0) {alert('Created AND deleted cookie successfully.');}
  else {alert('document.cookies.length = '+document.cookies.length);}
 }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.