আমি কীভাবে jQuery দিয়ে কোনও কুকি সেট / আনসেট করব?


1243

আমি কীভাবে jQuery ব্যবহার করে একটি কুকি সেট এবং আনসেট করব না, উদাহরণস্বরূপ একটি কুকি নামের তৈরি করুন testএবং মানটি সেট করবেন 1?

উত্তর:


1767

এপ্রিল 2019 আপডেট করুন

কুকি পড়ার / হেরফেরের জন্য jQuery এর প্রয়োজন নেই, সুতরাং নীচের মূল উত্তরটি ব্যবহার করবেন না।

পরিবর্তে https://github.com/js-cookie/js-cookie এ যান এবং সেখানে লাইব্রেরিটি ব্যবহার করুন যা jQuery এর উপর নির্ভর করে না।

প্রাথমিক উদাহরণ:

// Set a cookie
Cookies.set('name', 'value');

// Read the cookie
Cookies.get('name') => // => 'value'

বিশদ জন্য গিথুবে ডক্স দেখুন।


প্লাগইনটি দেখুন:

https://github.com/carhartl/jquery-cookie

তারপরে আপনি এটি করতে পারেন:

$.cookie("test", 1);

বাদ:

$.removeCookie("test");

অতিরিক্তভাবে, কুকিতে একটি নির্দিষ্ট দিনের (10 এখানে) সময়সীমা নির্ধারণ করতে:

$.cookie("test", 1, { expires : 10 });

যদি মেয়াদোত্তীকরণ বিকল্পটি বাদ দেওয়া হয় তবে কুকিটি একটি সেশন কুকিতে পরিণত হয় এবং ব্রাউজারটি প্রস্থান করার সময় মুছে ফেলা হয়।

সমস্ত বিকল্প কভার করতে:

$.cookie("test", 1, {
   expires : 10,           // Expires in 10 days

   path    : '/',          // The value of the path attribute of the cookie
                           // (Default: path of page that created the cookie).

   domain  : 'jquery.com', // The value of the domain attribute of the cookie
                           // (Default: domain of page that created the cookie).

   secure  : true          // If set to true the secure attribute of the cookie
                           // will be set and the cookie transmission will
                           // require a secure protocol (defaults to false).
});

কুকির মানটি আবার পড়তে:

var cookieValue = $.cookie("test");

আপনি যদি কুকিটি বর্তমানের থেকে ভিন্ন পথে তৈরি করা হয় তবে আপনি পাথ প্যারামিটারটি নির্দিষ্ট করতে চাইতে পারেন:

var cookieValue = $.cookie("test", { path: '/foo' });

আপডেট (এপ্রিল 2015):

নীচের মন্তব্যে যেমন বলা হয়েছে, মূল প্লাগইনে কাজ করা দলটি একটি নতুন প্রকল্পে ( https://github.com/js-cookie/js-cookie ) jQuery নির্ভরতা সরিয়ে দিয়েছে যার কার্যকারিতা এবং সাধারণ বাক্য গঠন যেমন রয়েছে jQuery সংস্করণ। দৃশ্যত মূল প্লাগইন যদিও কোথাও যাচ্ছে না।


1
চেঞ্জলগ থেকে: "rem .রেভকুকি ('foo') কুকি মুছে ফেলার জন্য, ook। কুকি ('foo', নাল) ব্যবহার করে এখন
অবচয় করা

68
@ কাজার আমি 6 ঘন্টা ব্যয় করেছি, কোনও বিরতি নেই। অবশেষে আজ সকালে সমস্যাটি বুঝতে পারলাম। আমি এটি ফোনগ্যাপের সাহায্যে ব্যবহার করছি, সাইটে এটি কোনও সমস্যা ছাড়াই কাজ করে, তবে ডিভাইসে, আপনি যখন একটি জেএসওএন রয়েছে এমন কুকি পুনরুদ্ধার করার চেষ্টা করছেন, এটি ইতিমধ্যে একটি অবজেক্ট, তাই আপনি যদি JSON.parse করার চেষ্টা করেন, এটি একটি JSON পার্স ত্রুটি দেবে। এটি JSON.parse না করে "if typof x == 'string'" দিয়ে সমাধান করেছেন, অন্যথায়, কেবলমাত্র অবজেক্টটি ব্যবহার করুন। 6 টি ভুল ঘন্টা সমস্ত ভুল জায়গায় ত্রুটি খুঁজছে
আন্দ্রে ক্রিশ্চিয়ান প্রোডান

10
কুকি অপসারণ করার সময়, আপনি কুকিটি মূলত সেট করেছেন ঠিক একই পথে পাথ সেট করার বিষয়টিও নিশ্চিত করুন:$.removeCookie('nameofcookie', { path: '/' });
লেসকিউসার

30
এটি 2015 এবং আমরা এখনও এই উত্তরটি থেকে জেকারি-কুকি ভাণ্ডারগুলিতে প্রতি সপ্তাহে 2k এরও বেশি হিট পাচ্ছি। আমরা এর থেকে কয়েকটি জিনিস শিখতে পারি: ১. কুকিজ শীঘ্রই মারা যায় না এবং ২. লোকেরা "বিশ্বকে বাঁচানোর জন্য jquery প্লাগইন" জন্য গুগল করে। কুকিগুলি পরিচালনা করার জন্য jQuery প্রয়োজনীয় নয়, jquery-ڪوڪيটির নামকরণ করা হয়েছে js-ڪوڪي ( github.com/js-cookie/js-cookie ) এবং jquery নির্ভরতা সংস্করণ 1.5.0 এ optionচ্ছিক করা হয়েছিল। অনেক আকর্ষণীয় স্টাফ সহ একটি সংস্করণ 2.0.0 থাকবে, এটি একবার দেখে নিন এবং অবদান রাখবেন, ধন্যবাদ!
ফাগনার ব্র্যাক 18

2
@ কাজার আমরা এটিকে শারীরিকভাবে সরিয়ে নেওয়ার পরিকল্পনা করছি না, বেশ কয়েকটি উত্স থেকে সেই ইউআরএলটিতে প্রচুর পরিমাণে ট্র্যাফিক রয়েছে এবং ক্লাউস "জ্যাকারি-কুকি" নেমস্পেসের historicতিহাসিক মালিক। এই URL টি শীঘ্রই যে কোনও সময় চলে যাওয়ার জন্য চিন্তা করার দরকার নেই। তবে তবুও, আমি সবাইকে আপডেটের জন্য নতুন সংগ্রহস্থল দেখা শুরু করতে উত্সাহিত করব।
ফাগনার ব্র্যাক

429

বিশেষত কুকিগুলি পরিচালনা করতে jQuery ব্যবহার করার দরকার নেই।

QuirksMode থেকে (পালানোর অক্ষর সহ)

function createCookie(name, value, days) {
    var expires;

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    } else {
        expires = "";
    }
    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; path=/";
}

function readCookie(name) {
    var nameEQ = encodeURIComponent(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 decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}

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

একবার দেখুন


2
হাই রুশ, জ্যাকোরি কুকি সম্পর্কে ভাল কথাটি এটি ডেটা থেকে পালিয়ে যায়
স্বেটোস্লাভ মেরিনভ

2
@ লর্ডস্পেস - যথাক্রমে কুকির মান লিখতে / পুনরুদ্ধার করার জন্য উইন্ডো.সেস্কেপ / ইউনেস্কেপে মানটি আবদ্ধ করুন :)
রাশ ক্যাম

46
আরও ভাল কুকি কোডটি এখানে পাওয়া যাবে: developer.mozilla.org/en/DOM/docament.cookie
এসডিসি

3
jQuery কুকি প্লাগইনটি অনেক সহজ
ব্রেওলিও

1
পালাতে বা আনস্কেপের পরিবর্তে আপনি এনকোডুরি বা ডিকোডুরিও ব্যবহার করতে পারেন
রোডিস্লাভ মলদোভান

143
<script type="text/javascript">
    function setCookie(key, value, expiry) {
        var expires = new Date();
        expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
        document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
    }

    function getCookie(key) {
        var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
        return keyValue ? keyValue[2] : null;
    }

    function eraseCookie(key) {
        var keyValue = getCookie(key);
        setCookie(key, keyValue, '-1');
    }

</script>

আপনি কুকি পছন্দ করতে পারেন

setCookie('test','1','1'); //(key,value,expiry in days)

আপনি কুকি পছন্দ করতে পারেন

getCookie('test');

এবং অবশেষে আপনি এইগুলির মতো কুকিজ মুছতে পারেন

eraseCookie('test');

আশা করি এটি কাউকে সহায়তা করবে :)

সম্পাদনা করুন:

আপনি যদি সমস্ত পাথ / পৃষ্ঠা / ডিরেক্টরিতে কুকি সেট করতে চান তবে কুকিতে পাথ অ্যাট্রিবিউট সেট করুন

function setCookie(key, value, expiry) {
        var expires = new Date();
        expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
        document.cookie = key + '=' + value + ';path=/' + ';expires=' + expires.toUTCString();
}

ধন্যবাদ, ভিকি


1
60 * 1000 = 60 দ্বিতীয় 60 * (60 * 1000) = 60 মিনিট যা 1 ঘন্টা 24 * (60 * (60 * 1000)) = 1 দিন যা 24 ঘন্টা আশা করি এটি সাহায্য করবে।
বিগনেশ পিচমণি

1
1 * 24 * 60 * 60 * 1000 1 দিনের জন্য 1 টি পছন্দমতো করুন বা আপনি 365 করতে পারেন
বিগনেশ পিচমণি

1
ভাল ফাংশন ... তবে সেগুলি কেন একটি ডকুমেন্ট.ডিডি ট্যাগের ভিতরে?
ডিএসএস

1
এই যেমন হওয়া ASCII সীমার বাহিরে যে কোন অক্ষর, জন্য সাফারি বা IE কাজ যাচ্ছে না é, ইত্যাদি এছাড়াও, এই কিছু বিশেষ অক্ষর যে কুকির-নাম অথবা কুকি-মান অনুমোদিত নয় জন্য কাজ করতে যাচ্ছে না। আমি নিম্নলিখিত রেফারেন্সটির পরামর্শ দিচ্ছি: সরঞ্জাম. ietf.org/html/rfc6265
ফাগনার ব্র্যাক

18

আপনি এখানে উপলব্ধ একটি প্লাগইন ব্যবহার করতে পারেন ..

https://plugins.jquery.com/cookie/

এবং তারপরে একটি কুকি লিখতে হবে $.cookie("test", 1);

সেট কুকি করতে অ্যাক্সেস করতে $.cookie("test");


3
সেই প্লাগইনটির একটি নতুন সংস্করণ রয়েছে
আন্দ্রে ক্রিশ্চিয়ান প্রোডান

13

আমি ব্যবহার করি এটির আমার বিশ্বব্যাপী মডিউলটি এখানে -

var Cookie = {   

   Create: function (name, value, days) {

       var expires = "";

        if (days) {
           var date = new Date();
           date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
           expires = "; expires=" + date.toGMTString();
       }

       document.cookie = name + "=" + value + expires + "; path=/";
   },

   Read: function (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;
    },

    Erase: function (name) {

        Cookie.create(name, "", -1);
    }

};

10

এটির মতো কিছু না করার বিষয়টি নিশ্চিত করুন:

var a = $.cookie("cart").split(",");

তারপরে, যদি কুকির অস্তিত্ব না থাকে তবে ডিবাগারটি "। কুকি কোনও ফাংশন নয়" এর মতো কিছু অসহায় বার্তা ফিরে আসবে।

সর্বদা প্রথমে ঘোষণা করুন, তারপরে নাল পরীক্ষা করার পরে বিভাজন করুন। এটার মত:

var a = $.cookie("cart");
if (a != null) {
    var aa = a.split(",");

নমুনা কোডটি সম্পূর্ণ নয়। এটি কি কেবলমাত্র একা }যা অনুপস্থিত বা কোডের বেশ কয়েকটি লাইন অনুপস্থিত রয়েছে?
পিটার মর্টেনসেন

এটি কেবল একটি গজাগুলি} অনুপস্থিত, তবে স্পষ্টতই আপনি বিভাজন নিয়ে যা করতে চান তা চালিয়ে যেতে আপনাকে আরও কোডের লাইন যুক্ত করতে হবে।
user890332

7

আপনার ব্রাউজারে সেট কুকির একটি সাধারণ উদাহরণ:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>jquery.cookie Test Suite</title>

        <script src="jquery-1.9.0.min.js"></script>
        <script src="jquery.cookie.js"></script>
        <script src="JSON-js-master/json.js"></script>
        <script src="JSON-js-master/json_parse.js"></script>
        <script>
            $(function() {

               if ($.cookie('cookieStore')) {
                    var data=JSON.parse($.cookie("cookieStore"));
                    $('#name').text(data[0]);
                    $('#address').text(data[1]);
              }

              $('#submit').on('click', function(){

                    var storeData = new Array();
                    storeData[0] = $('#inputName').val();
                    storeData[1] = $('#inputAddress').val();

                    $.cookie("cookieStore", JSON.stringify(storeData));
                    var data=JSON.parse($.cookie("cookieStore"));
                    $('#name').text(data[0]);
                    $('#address').text(data[1]);
              });
            });

       </script>
    </head>
    <body>
            <label for="inputName">Name</label>
            <br /> 
            <input type="text" id="inputName">
            <br />      
            <br /> 
            <label for="inputAddress">Address</label>
            <br /> 
            <input type="text" id="inputAddress">
            <br />      
            <br />   
            <input type="submit" id="submit" value="Submit" />
            <hr>    
            <p id="name"></p>
            <br />      
            <p id="address"></p>
            <br />
            <hr>  
     </body>
</html>

আপনার কুকি সেট করার জন্য কেবল অনুলিপি / পেস্ট করুন এবং এই কোডটি ব্যবহার করুন।


1
কেবল একটি নোট, ডিফল্টরূপে ব্রাউজারটি তাদের ফাইলের নাম অনুসারে সংস্থানগুলি ক্যাশে করে। এই উদাহরণস্বরূপ, jquery-1.9.0.min.jsফাইলের নামটি আপডেট হয়ে গেলে প্রত্যেকের জন্য পুনরায় লোড করা হবে jquery-1.9.1.min.js, অন্যথায় ব্রাউজার আপডেট হওয়া সামগ্রীর জন্য চেক করার জন্য সার্ভারকে মোটেই অনুরোধ জানাবে না। যদি আপনি jquery.cookie.jsফাইলের নাম পরিবর্তন না করেই কোডটির অভ্যন্তরে আপডেট করেন তবে এটি ইতিমধ্যে jquery.cookie.jsসংস্থানটিতে থাকা ব্রাউজারগুলিতে পুনরায় লোড করা যাবে না ।
ফাগনার ব্র্যাক 18

আপনি যদি কোনও ওয়েবসাইট লিখছেন এবং এটি অনুলিপি / পেস্ট করছেন তবে সচেতন হন যে আপনি ফাইলটির jquery.cookie.jsনাম পরিবর্তন না করে সংস্করণ আপডেট করলে এটি কাজ করছে না (যদি না আপনার সার্ভার ই-ট্যাগগুলি ব্যবহার করে ক্যাশে করার বিষয়টি না করে)।
ফাগনার ব্র্যাক 18

যদি (c। কুকি ('কুকি স্টোর')) {var ডেটা = JSON.parse ($। কুকি ("কুকি স্টোর")); // যখন বিভিন্ন পৃষ্ঠায় পৃষ্ঠা লোড পাওয়া যায় না $ ('# নাম') text পাঠ্য (ডেটা [0]); । $ ( '# ঠিকানা') টেক্সট (ডাটা [1]); }
মোহাম্মদ জাওয়াদ

7

আপনি কীভাবে জাভাস্ক্রিপ্ট সহ কুকি সেট করবেন:

নীচের কোডটি https://www.w3schools.com/js/js_cookies.asp থেকে নেওয়া হয়েছে

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

এখন আপনি নীচের ফাংশন সহ কুকি পেতে পারেন:

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

এবং অবশেষে আপনি কুকিটি এইভাবে পরীক্ষা করেন:

function checkCookie() {
    var username = getCookie("username");
    if (username != "") {
        alert("Welcome again " + username);
    } else {
        username = prompt("Please enter your name:", "");
        if (username != "" && username != null) {
            setCookie("username", username, 365);
        }
    }
}

আপনি যদি কুকি মুছতে চান তবে কেবল মেয়াদ উত্তীর্ণের প্যারামিটারটি একটি নির্ধারিত তারিখে সেট করুন:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

5

আপনি এখানে মজিলা ওয়েবসাইটে লাইব্রেরিটি ব্যবহার করতে পারেন

আপনি এই জাতীয় কুকি সেট করতে এবং পেতে সক্ষম হবেন

docCookies.setItem(name, value);
docCookies.getItem(name);

3

আমার মনে হয় ফ্রেশার আমাদের সুন্দর উপায় দিয়েছেন, তবে একটি ভুল আছে:

    <script type="text/javascript">
        function setCookie(key, value) {
            var expires = new Date();
            expires.setTime(expires.getTime() + (value * 24 * 60 * 60 * 1000));
            document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
        }

        function getCookie(key) {
            var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
            return keyValue ? keyValue[2] : null;
        }
   </script>

গেটটাইম () এর নিকটে আপনার "মান" যুক্ত করা উচিত; অন্যথায় কুকি অবিলম্বে মেয়াদ শেষ হয়ে যাবে :)


2
"মান" একটি স্ট্রিং হতে পারে। প্রশ্নে তিনি 1 উদাহরণ হিসাবে ব্যবহার করছেন। মানটি কীটির সমান হতে হবে, কুকির মেয়াদ শেষ হওয়ার আগের দিনগুলির দৈর্ঘ্য নয়। যদি "foo" হিসাবে মানটি পাস করা হয় তবে আপনার সংস্করণটি ক্রাশ হবে।
পিটার

1

ভেবেছিলাম ভিগনেশ পিচমণির উত্তরটি সবচেয়ে সহজ এবং পরিষ্কার। মেয়াদ শেষ হওয়ার আগের দিনগুলির সংখ্যা নির্ধারণের সক্ষমতাটিতে কেবল তার যোগ করা:

সম্পাদনা: কোনও দিন নম্বর সেট না করা থাকলে 'কখনই মেয়াদ শেষ হয় না' বিকল্পটি যোগ করা হয়

        function setCookie(key, value, days) {
            var expires = new Date();
            if (days) {
                expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
                document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
            } else {
                document.cookie = key + '=' + value + ';expires=Fri, 30 Dec 9999 23:59:59 GMT;';
            }
        }

        function getCookie(key) {
            var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
            return keyValue ? keyValue[2] : null;
        }

কুকি সেট করুন:

setCookie('myData', 1, 30); // myData=1 for 30 days. 
setCookie('myData', 1); // myData=1 'forever' (until the year 9999) 

1

আমি জানি অনেক দুর্দান্ত উত্তর আছে। প্রায়শই, আমার কেবল কুকিগুলি পড়তে হবে এবং অতিরিক্ত গ্রন্থাগার লোড করে বা ফাংশনগুলি নির্ধারণ করে আমি ওভারহেড তৈরি করতে চাই না।

জাভাস্ক্রিপ্টের এক লাইনে কুকিগুলি কীভাবে পড়তে হবে তা এখানে । আমি উত্তরটি গিলহর্ম রডরিগসের ব্লগ নিবন্ধে পেয়েছি :

('; '+document.cookie).split('; '+key+'=').pop().split(';').shift()

এটি দুর্দান্ত key, পরিষ্কার এবং সাধারণ নামের কুকি পড়বে ।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.