如何在 JS 中调用特定的 cookie
how to call to a specific cookie in JS
我该怎么做,W3Schools 没有帮助这是我的代码
document.cookie="krul=1";
var x = document.cookie;
if(x == 1){
document.getElementById("krul").src="https://www.youtube.com/v/An9M93j2XUs?version=3&loop=1&playlist=An9M93j2XUs&autoplay=1";
}
我创建了一个 cookie kruuuul=1
然后我尝试将它分配给 x 并在 if 语句中进行比较。
'x' 的 cookie 值为 'krul=1',而不是您的条件语句中的“1”。
您可能希望在 'if' 语句之前解析 cookie 以获得您需要的单个 cookie 值。否则,您需要检查 'x' 的值是否等于 'krul=1'.
当然后一种方法不是很理想。首选第一种方法,更容易长期处理cookies。
有很多方法可以实现这一点,但这里是 W3School 的示例,通过 javascript:
获取文档 cookie 值
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 "";
}
因此,如果您要将上述代码段添加到脚本中,那么您的代码应该调用 'getCookie' 函数来获取值。
新代码将类似于:
document.cookie="krul=1";
var x = getCookie("krul");
if(x == 1){
document.getElementById("krul").src="https://www.youtube.com/v/An9M93j2XUs?version=3&loop=1&playlist=An9M93j2XUs&autoplay=1";
}
document.cookie 将 return 所有附加到页面的 cookie。您必须解析 returned 字符串才能找到所需的信息。有许多不同的方法可以做到这一点。
此函数接受一个 cookie 名称和一个可选参数。该函数将 return cookie 名称和分配的值,或者只是您想要的值。
function getSpecificCookie(cookieName, valueOnly) {
//Get original cookie string
var oCookieArray = document.cookie.split(';'),
fc,
cnRE = new RegExp(cookieName + '\=');
//Loop through cookies
for (var c = 0; c < oCookieArray.length; c++) {
//If found save to variable and end loop
if (cnRE.test(oCookieArray[c])) {
fc = oCookieArray[c].trim();
if (valueOnly) {
fc = fc.replace(cookieName +'=', '');
}
break;
}
}
return fc;
}
你会像这样使用它:
//Set the cookie;
document.cookie = 'krul=1';
//Either call the function to return the entire cookie;
var x = getSpecificCookie('krul');
if (x == 'krul=1') {
//do something
}
//Or call the function to return just the cookie value;
var x = getSpecificCookie('krul', true);
if (x == 1) {
//do something
}
我该怎么做,W3Schools 没有帮助这是我的代码
document.cookie="krul=1";
var x = document.cookie;
if(x == 1){
document.getElementById("krul").src="https://www.youtube.com/v/An9M93j2XUs?version=3&loop=1&playlist=An9M93j2XUs&autoplay=1";
}
我创建了一个 cookie kruuuul=1 然后我尝试将它分配给 x 并在 if 语句中进行比较。
'x' 的 cookie 值为 'krul=1',而不是您的条件语句中的“1”。
您可能希望在 'if' 语句之前解析 cookie 以获得您需要的单个 cookie 值。否则,您需要检查 'x' 的值是否等于 'krul=1'.
当然后一种方法不是很理想。首选第一种方法,更容易长期处理cookies。
有很多方法可以实现这一点,但这里是 W3School 的示例,通过 javascript:
获取文档 cookie 值 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 "";
}
因此,如果您要将上述代码段添加到脚本中,那么您的代码应该调用 'getCookie' 函数来获取值。
新代码将类似于:
document.cookie="krul=1";
var x = getCookie("krul");
if(x == 1){
document.getElementById("krul").src="https://www.youtube.com/v/An9M93j2XUs?version=3&loop=1&playlist=An9M93j2XUs&autoplay=1";
}
document.cookie 将 return 所有附加到页面的 cookie。您必须解析 returned 字符串才能找到所需的信息。有许多不同的方法可以做到这一点。
此函数接受一个 cookie 名称和一个可选参数。该函数将 return cookie 名称和分配的值,或者只是您想要的值。
function getSpecificCookie(cookieName, valueOnly) {
//Get original cookie string
var oCookieArray = document.cookie.split(';'),
fc,
cnRE = new RegExp(cookieName + '\=');
//Loop through cookies
for (var c = 0; c < oCookieArray.length; c++) {
//If found save to variable and end loop
if (cnRE.test(oCookieArray[c])) {
fc = oCookieArray[c].trim();
if (valueOnly) {
fc = fc.replace(cookieName +'=', '');
}
break;
}
}
return fc;
}
你会像这样使用它:
//Set the cookie;
document.cookie = 'krul=1';
//Either call the function to return the entire cookie;
var x = getSpecificCookie('krul');
if (x == 'krul=1') {
//do something
}
//Or call the function to return just the cookie value;
var x = getSpecificCookie('krul', true);
if (x == 1) {
//do something
}