আমি কীভাবে জাভাস্ক্রিপ্টে কোনও কুকি থেকে একটি মান তৈরি করতে এবং পড়তে পারি?
আমি কীভাবে জাভাস্ক্রিপ্টে কোনও কুকি থেকে একটি মান তৈরি করতে এবং পড়তে পারি?
উত্তর:
কুকি তৈরি এবং পুনরুদ্ধারের জন্য আপনি যে ফাংশনগুলি ব্যবহার করতে পারেন তা এখানে।
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 = name + "=" + value + expires + "; path=/";
}
function getCookie(c_name) {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return "";
}
সংক্ষিপ্ত এবং সম্পূর্ণ বৈশিষ্ট্যযুক্ত ES6 পদ্ধতির:
const setCookie = (name, value, days = 7, path = '/') => {
const expires = new Date(Date.now() + days * 864e5).toUTCString()
document.cookie = name + '=' + encodeURIComponent(value) + '; expires=' + expires + '; path=' + path
}
const getCookie = (name) => {
return document.cookie.split('; ').reduce((r, v) => {
const parts = v.split('=')
return parts[0] === name ? decodeURIComponent(parts[1]) : r
}, '')
}
const deleteCookie = (name, path) => {
setCookie(name, '', -1, path)
}
toGMTString()
অবচয় করা হয়েছে, toUTCString()
পরিবর্তে ব্যবহার করুন।
=
চিহ্ন থাকতে পারে । getCookie
সেক্ষেত্রে ফাংশনটি অপ্রত্যাশিত ফলাফল আনবে। এটি এড়াতে নীচের তীরের ক্রিয়াটি বডিটি ব্যবহারের বিষয়ে বিবেচনা করুনconst [n, ...val] = v.split('='); return n === name ? decodeURIComponent(val.join('=')) : r
864e5 = 86400000 = 1000*60*60*24
24 ঘন্টা দিনে মিলিসেকেন্ডের সংখ্যা উপস্থাপন করে।
বা সরল জাভাস্ক্রিপ্ট:
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : ("; expires="+exdate.toUTCString()));
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0; i<ARRcookies.length; i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
মোজিলা সম্পূর্ণ ইউনিকোড সমর্থন সহ কুকিজ পড়ার এবং লেখার জন্য একটি সহজ কাঠামো সরবরাহ করে সহ এটি কীভাবে ব্যবহার করতে হয় তার উদাহরণ সহ করে।
একবার পৃষ্ঠায় অন্তর্ভুক্ত হয়ে গেলে আপনি একটি কুকি সেট করতে পারেন:
docCookies.setItem(name, value);
একটি কুকি পড়ুন:
docCookies.getItem(name);
বা একটি কুকি মুছুন:
docCookies.removeItem(name);
উদাহরণ স্বরূপ:
// sets a cookie called 'myCookie' with value 'Chocolate Chip'
docCookies.setItem('myCookie', 'Chocolate Chip');
// reads the value of a cookie called 'myCookie' and assigns to variable
var myCookie = docCookies.getItem('myCookie');
// removes the cookie called 'myCookie'
docCookies.removeItem('myCookie');
মজিলার ডকুমেন্ট.কুকি পৃষ্ঠায় আরও উদাহরণ এবং বিশদ দেখুন ।
এই সরল জেএস ফাইলের একটি সংস্করণ গিথুবে রয়েছে ।
ES7, গেট () এর জন্য একটি রেগেক্স ব্যবহার করে। এমডিএন ভিত্তিক
const Cookie =
{ get: name => {
let c = document.cookie.match(`(?:(?:^|.*; *)${name} *= *([^;]*).*$)|^.*$`)[1]
if (c) return decodeURIComponent(c)
}
, set: (name, value, opts = {}) => {
if (opts.days) {
opts['max-age'] = opts.days * 60 * 60 * 24;
delete opts.days
}
opts = Object.entries(opts).reduce((str, [k, v]) => `${str}; ${k}=${v}`, '')
document.cookie = name + '=' + encodeURIComponent(value) + opts
}
, delete: (name, opts) => Cookie.set(name, '', {'max-age': -1, ...opts})
// path & domain must match cookie being deleted
}
Cookie.set('user', 'Jim', {path: '/', days: 10})
// Set the path to top level (instead of page) and expiration to 10 days (instead of session)
ব্যবহার - কুকি.জেট (নাম, মান [, বিকল্পসমূহ]):
বিকল্পগুলি সমস্ত স্ট্যান্ডার্ড কুকি বিকল্পগুলিকে সমর্থন করে এবং "দিন" যুক্ত করে:
অন্যান্য উত্তরগুলি পুরানো আই সংস্করণ সমর্থন করতে "সর্বাধিক বয়স" পরিবর্তে "মেয়াদ শেষ" ব্যবহার করে। এই পদ্ধতির জন্য ES7 প্রয়োজন, সুতরাং আই 7 যাইহোক বাহিরে রয়েছে (এটি কোনও বড় বিষয় নয়)।
দ্রষ্টব্য: "=" এবং "{:}" এর মতো মজাদার অক্ষরগুলি কুকি মান হিসাবে সমর্থিত হয় এবং রেজেক্স নেতৃস্থানীয় এবং অনুসরণকারী শ্বেতস্পেস পরিচালনা করে (অন্যান্য লিবস থেকে)।
আপনি যদি বস্তুগুলি সঞ্চয় করতে চান তবে হয় তাদের আগে এবং পরে এনএসড করুন এবং JSON.stringify এবং JSON.parse করুন, উপরেরটি সম্পাদনা করুন বা অন্য কোনও পদ্ধতি যুক্ত করুন। উদাহরণ:
Cookie.getJSON = name => JSON.parse(Cookie.get(name))
Cookie.setJSON = (name, value, opts) => Cookie.set(name, JSON.stringify(value), opts);
যাদের {foo: 'bar' like এর মতো জিনিসগুলি সংরক্ষণ করা দরকার তাদের জন্য আমি @ কেভিনবার্কের উত্তরের আমার সম্পাদিত সংস্করণটি ভাগ করে দিচ্ছি। আমি JSON.stringify এবং JSON.parse যোগ করেছি, এগুলি সবই।
cookie = {
set: function (name, value, days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = "; expires=" + date.toGMTString();
}
else
var expires = "";
document.cookie = name + "=" + JSON.stringify(value) + expires + "; path=/";
},
get : function(name){
var nameEQ = name + "=",
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 JSON.parse(c.substring(nameEQ.length,c.length));
}
return null;
}
}
সুতরাং, এখন আপনি এই জাতীয় জিনিসগুলি করতে পারেন:
cookie.set('cookie_key', {foo: 'bar'}, 30);
cookie.get('cookie_key'); // {foo: 'bar'}
cookie.set('cookie_key', 'baz', 30);
cookie.get('cookie_key'); // 'baz'
আমি ইতিমধ্যে অনেকবার এই থ্রেডের স্বীকৃত উত্তর ব্যবহার করেছি। এটি কোডের দুর্দান্ত অংশ: সহজ এবং ব্যবহারযোগ্য। তবে আমি সাধারণত বাবেল এবং ইএস 6 এবং মডিউলগুলি ব্যবহার করি , সুতরাং আপনি যদি আমার মতো হন তবে ES6 এর সাথে দ্রুত বিকাশের জন্য এখানে অনুলিপি করার কোড রয়েছে
গৃহীত উত্তর ES6 সহ মডিউল হিসাবে পুনরায় লিখিত:
export const createCookie = ({name, value, days}) => {
let expires;
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = '; expires=' + date.toGMTString();
} else {
expires = '';
}
document.cookie = name + '=' + value + expires + '; path=/';
};
export const getCookie = ({name}) => {
if (document.cookie.length > 0) {
let c_start = document.cookie.indexOf(name + '=');
if (c_start !== -1) {
c_start = c_start + name.length + 1;
let c_end = document.cookie.indexOf(';', c_start);
if (c_end === -1) {
c_end = document.cookie.length;
}
return unescape(document.cookie.substring(c_start, c_end));
}
}
return '';
};
এবং এর পরে আপনি কেবল এটিকে কোনও মডিউল হিসাবে আমদানি করতে পারেন (অবশ্যই পথ পৃথক হতে পারে):
import {createCookie, getCookie} from './../helpers/Cookie';
জাভাস্ক্রিপ্টে কুকি পেতে, সেট করতে এবং মুছতে এখানে একটি কোড রয়েছে ।
function getCookie(name) {
name = name + "=";
var cookies = document.cookie.split(';');
for(var i = 0; i <cookies.length; i++) {
var cookie = cookies[i];
while (cookie.charAt(0)==' ') {
cookie = cookie.substring(1);
}
if (cookie.indexOf(name) == 0) {
return cookie.substring(name.length,cookie.length);
}
}
return "";
}
function setCookie(name, value, expirydays) {
var d = new Date();
d.setTime(d.getTime() + (expirydays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = name + "=" + value + "; " + expires;
}
function deleteCookie(name){
setCookie(name,"",-1);
}
সূত্র: http://mycodingtricks.com/snippets/ javascript / javascript-cookies/
আমি এই বস্তুটি ব্যবহার করি। মানগুলি এনকোড করা থাকে, সুতরাং সার্ভার দিক থেকে পড়া বা লেখার সময় এটি বিবেচনা করা প্রয়োজন।
cookie = (function() {
/**
* Sets a cookie value. seconds parameter is optional
*/
var set = function(name, value, seconds) {
var expires = seconds ? '; expires=' + new Date(new Date().getTime() + seconds * 1000).toGMTString() : '';
document.cookie = name + '=' + encodeURIComponent(value) + expires + '; path=/';
};
var map = function() {
var map = {};
var kvs = document.cookie.split('; ');
for (var i = 0; i < kvs.length; i++) {
var kv = kvs[i].split('=');
map[kv[0]] = decodeURIComponent(kv[1]);
}
return map;
};
var get = function(name) {
return map()[name];
};
var remove = function(name) {
set(name, '', -1);
};
return {
set: set,
get: get,
remove: remove,
map: map
};
})();
ES6 এ কুকিজ পড়ার সহজ উপায়।
function getCookies() {
var cookies = {};
for (let cookie of document.cookie.split('; ')) {
let [name, value] = cookie.split("=");
cookies[name] = decodeURIComponent(value);
}
console.dir(cookies);
}
আপনি আমার কুকি ইএস মডিউলটি ব্যবহার করতে পারেন পেতে / সেট করতে / সরানোর জন্য ।
আপনার হেড ট্যাগে, নিম্নলিখিত কোডটি অন্তর্ভুক্ত করুন:
<script src="https://raw.githack.com/anhr/cookieNodeJS/master/build/cookie.js"></script>
অথবা
<script src="https://raw.githack.com/anhr/cookieNodeJS/master/build/cookie.min.js"></script>
ওয়েব পৃষ্ঠাগুলিতে স্টোর ব্যবহারকারীর তথ্যের জন্য এখন আপনি উইন্ডো.কুকি ব্যবহার করতে পারেন।
কুকি আপনার ওয়েব ব্রাউজারে সক্ষম করা আছে?
returns {boolean} true if cookie enabled.
উদাহরণ
if ( cookie.isEnabled() )
console.log('cookie is enabled on your browser');
else
console.error('cookie is disabled on your browser');
একটি কুকি সেট করুন।
name: cookie name.
value: cookie value.
উদাহরণ
cookie.set('age', 25);
একটি কুকি পেতে।
name: cookie name.
defaultValue: cookie default value. Default is undefined.
returns cookie value or defaultValue if cookie was not found
উদাহরণ
var age = cookie.get('age', 25);
কুকি সরান।
name: cookie name.
উদাহরণ
cookie.remove( 'age' );
রিডকুকির একটি উন্নত সংস্করণ:
function readCookie( name )
{
var cookieParts = document.cookie.split( ';' )
, i = 0
, part
, part_data
, value
;
while( part = cookieParts[ i++ ] )
{
part_data = part.split( '=' );
if ( part_data.shift().replace(/\s/, '' ) === name )
{
value = part_data.shift();
break;
}
}
return value;
}
আপনার কুকির মান খুঁজে পাওয়ার সাথে সাথে এটির বিরতি হওয়া উচিত এবং এর মানটি ফিরিয়ে দেওয়া উচিত। আমার মতে ডাবল বিভক্তির সাথে খুব মার্জিত।
যদি এটি সঠিকভাবে মেলে তা নিশ্চিত করার জন্য যদি-শর্তটিতে প্রতিস্থাপন করা হয় একটি সাদা স্পেস ট্রিম
function setCookie(cname,cvalue,exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname) {
var name = cname + "=";
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);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function checkCookie() {
var user=getCookie("username");
if (user != "") {
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:","");
if (user != "" && user != null) {
setCookie("username", user, 30);
}
}
}
আমি সাধারণ কুকি ইউটিলস লিখেছি, এটি কুকি তৈরির জন্য, কুকি পড়ার এবং কুকি মুছে ফেলার জন্য তিনটি ফাংশন রয়েছে।
var CookieUtils = {
createCookie: function (name, value, expireTime) {
expireTime = !!expireTime ? expireTime : (15 * 60 * 1000); // Default 15 min
var date = new Date();
date.setTime(date.getTime() + expireTime);
var expires = "; expires=" + date.toGMTString();
document.cookie = name + "=" + value + expires + "; path=/";
},
getCookie: function (name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) {
return parts.pop().split(";").shift();
}
},
deleteCookie: function(name) {
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
};
এখানে ডাব্লু 3 স্কুলগুলির উদাহরণ রয়েছে ।
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 "";
}
একটি কুকি পড়ার একটি দালাল এবং সহজ উপায় এরকম কিছু হতে পারে:
let username, id;
eval(document.cookie);
console.log(username + ", " + id); // John Doe, 123
আপনার কুকিতে এমন কিছু রয়েছে: আপনি যদি জানেন তবে এটি ব্যবহার করা যেতে পারে username="John Doe"; id=123;
। নোট করুন যে কুকিতে একটি স্ট্রিংয়ের উদ্ধৃতি প্রয়োজন। সম্ভবত প্রস্তাবিত উপায় নয়, তবে পরীক্ষার / শেখার জন্য কাজ করে।