0

所以我的网站管理员面板上有一大段 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调用其他任何函数。但是,如果我从脚本中注释掉这个代码片段,我就不会再收到错误了。

为什么这个函数会这样做?它出什么问题了?

4

2 回答 2

0

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

于 2012-08-01T16:59:16.530 回答
0

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

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

但是,这似乎不起作用。将值设置为等于解决了问题,如下所示:

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

我很惊讶这会解决它,但 JavaScript 一直是我的弱点。谢谢各位。:/

于 2012-08-01T17:06:25.487 回答