如何调用JS中的特定cookie

时间:2015-02-03 18:30:27

标签: javascript if-statement cookies

我如何做到这一点,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语句中进行比较。

2 个答案:

答案 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";
}