我如何做到这一点,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语句中进行比较。
答案 0 :(得分:1)
document.cookie将返回附加到页面的所有cookie。您必须解析返回的字符串以查找所需的信息。有很多不同的方法可以做到这一点。
此函数接受cookie名称和可选参数。该函数将返回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
}
答案 1 :(得分:0)
&#39; x&#39;的Cookie值是&#39; krul = 1&#39;,不是&#39; 1&#39;比如你的条件陈述。
您可能希望在“如果”之前解析Cookie。声明以获取您需要的单个cookie值。否则,你需要检查&#39; x&#39;的价值。等于&#39; krul = 1&#39;。
当然后一种方法并不是很理想。第一种方法更适合您长期处理cookie。
有很多方法可以实现这一目标,但这里是W3Schools通过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 "";
}
因此,如果您要将上述代码段添加到您的脚本中,那么您的代码应该调用&#39; getCookie&#39;获得价值的功能。
新代码看起来像是:
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";
}