जवाबों:
अप्रैल 2019 को अपडेट करें
कुकी पढ़ने / हेरफेर के लिए jQuery की आवश्यकता नहीं है, इसलिए नीचे दिए गए मूल उत्तर का उपयोग न करें।
इसके बजाय https://github.com/js-cookie/js-cookie पर जाएं , और वहां लाइब्रेरी का उपयोग करें जो jQuery पर निर्भर नहीं करता है।
मूल उदाहरण:
// Set a cookie
Cookies.set('name', 'value');
// Read the cookie
Cookies.get('name') => // => 'value'
विवरण के लिए github पर डॉक्स देखें।
प्लगइन देखें:
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):
जैसा कि नीचे टिप्पणी में कहा गया है, मूल प्लगइन पर काम करने वाली टीम ने एक नई परियोजना में jQuery की निर्भरता को हटा दिया है ( https://github.com/js-cookie/js-cookie ) जिसकी कार्यक्षमता और सामान्य वाक्यविन्यास समान है jQuery संस्करण। जाहिरा तौर पर मूल प्लगइन हालांकि कहीं भी नहीं जा रहा है।
$.removeCookie('nameofcookie', { path: '/' });
कुकीज़ में हेरफेर करने के लिए विशेष रूप से 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);
}
पर एक नज़र डालें
<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();
}
धन्यवाद, विक्की
é
, 北
आदि इसके अलावा, इस कुछ विशेष वर्ण कि कुकी नाम या कुकी-मूल्य में अनुमति नहीं है के लिए काम करने के लिए नहीं जा रहा है। मैं निम्नलिखित संदर्भ की सलाह देता हूं: tools.ietf.org/html/rfc6265
आप यहाँ उपलब्ध एक प्लगइन का उपयोग कर सकते हैं।
https://plugins.jquery.com/cookie/
और फिर एक कुकी लिखने के लिए
$.cookie("test", 1);
सेट कुकी का उपयोग करने के लिए
$.cookie("test");
यहां मेरा वैश्विक मॉड्यूल है जिसका मैं उपयोग करता हूं -
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);
}
};
सुनिश्चित करें कि ऐसा कुछ न करें:
var a = $.cookie("cart").split(",");
फिर, यदि कुकी मौजूद नहीं है, तो डिबगर कुछ अनछुए संदेश लौटाएगा जैसे ".cookie not a function"।
हमेशा पहले घोषित करें, फिर अशक्त के लिए जाँच के बाद विभाजन करें। ऐशे ही:
var a = $.cookie("cart");
if (a != null) {
var aa = a.split(",");
}
है जो गायब है या कोड की कई लाइनें गायब हैं?
यहाँ आप जावास्क्रिप्ट के साथ कुकी कैसे सेट करें:
नीचे कोड 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=/;";
आपके ब्राउज़र में सेट कुकी का एक सरल उदाहरण:
<!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>
सरल बस कॉपी / पेस्ट करें और अपने कुकी सेट करने के लिए इस कोड का उपयोग करें।
jquery-1.9.0.min.js
फ़ाइल नाम अपडेट किए जाने पर सभी के लिए पुनः लोड किया जाएगा jquery-1.9.1.min.js
, अन्यथा ब्राउज़र अपडेट की गई सामग्री की जाँच करने के लिए सर्वर से अनुरोध नहीं करेगा। यदि आप jquery.cookie.js
फ़ाइल नाम बदले बिना कोड को अपडेट करते हैं , तो यह उन ब्राउज़र में पुनः लोड नहीं किया जा सकता है जो पहले ही jquery.cookie.js
संसाधन को कैश कर चुके हैं ।
jquery.cookie.js
फ़ाइल नाम बदले बिना ई-टैग का उपयोग करते हुए कैशिंग से निपटते हैं, तो संस्करण को अपडेट किए बिना यह काम नहीं करेगा ।
मुझे लगता है कि फ्रेशर ने हमें अच्छा तरीका दिया है, लेकिन एक गलती है:
<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>
आपको गेटटाइम के पास "मूल्य" जोड़ना चाहिए (); अन्यथा कुकी तुरंत समाप्त हो जाएगी :)
मुझे लगा कि विग्नेश पिचमणि का जवाब सबसे सरल और साफ है। समाप्ति से पहले दिनों की संख्या निर्धारित करने की उनकी क्षमता में बस जोड़ना:
EDIT: यदि कोई दिन संख्या निर्धारित नहीं है, तो 'कभी भी समाप्त नहीं होने वाला' विकल्प भी जोड़ा जाता है
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)
मुझे पता है कि कई बेहतरीन जवाब हैं। अक्सर, मुझे केवल कुकीज़ पढ़ने की ज़रूरत होती है और मैं अतिरिक्त पुस्तकालयों को लोड करके या फ़ंक्शंस को परिभाषित करके ओवरहेड नहीं बनाना चाहता।
यहाँ कैसे जावास्क्रिप्ट की एक पंक्ति में कुकीज़ पढ़ने के लिए है । मुझे गिलहर्म रॉड्रिक्स के ब्लॉग लेख में इसका जवाब मिला :
('; '+document.cookie).split('; '+key+'=').pop().split(';').shift()
यह key
अच्छा, साफ और सरल नाम के कुकी को पढ़ता है ।
$.cookie("test", 1); //set cookie
$.cookie("test"); //get cookie
$.cookie('test', null); //delete cookie