W3Schools的功能打破了我的剧本?

时间:2012-08-01 16:44:08

标签: javascript cookies

所以我的网站管理员面板上有很长一段时间的JavaScript。几乎所有东西似乎都有效...直到我添加此功能!我是从W3Schools那里得到的,这就是为什么我很惊讶。尽管我的所有盯着和语法突出显示,我找不到任何语法错误或任何东西,所以我完全不知道为什么这会杀死我的脚本。

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);
        }
    }
}

基本上,如果我将其添加到脚本中,Firebug会给我一个Reference Error, FUNCTIONNAME is not defined,其中FUNCTIONNAME是其他函数的调用。但是,如果我从脚本中注释掉这段代码片段,我就不再收到错误了。

为什么这个功能会这样做?怎么了?

2 个答案:

答案 0 :(得分:0)

unescape()已被弃用,您的浏览器可能无法识别吗?此外,只需尝试注释掉一些代码行,直到将其缩小到发生错误的位置。

答案 1 :(得分:0)

呃,发现了问题,它实际上与我提供的代码片段没有关系。后来,当我调用脚本时,它是if语句的一部分,如下所示:

if (getCookie("menu_maindiv"))
{
     /*  ....  */
}

然而,这似乎不起作用。将值设置为等于修复问题,如下所示:

if (getCookie("menu_maindiv") !== NULL)
{
     /*  ....  */
}

我很惊讶这会解决它,但JavaScript一直是我的弱点。谢谢你们,伙计们。 :/