0

そのため、私の Web サイトの管理者パネルには 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

うーん、問題が見つかりましたが、実際には私が提供していたコード スニペットとは関係ありませんでした。後でスクリプトを呼び出したとき、それは次のように if ステートメントの一部でした。

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

ただし、これは機能していないようです。次のように、値を設定して問題を修正しました。

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

これで問題が解決することに驚いていますが、JavaScript は常に私の弱点でした。ありがとう、みんな。:/

于 2012-08-01T17:06:25.487 に答える
0

unescape() は推奨されていません。ブラウザはそれを認識できませんか? また、エラーが発生した場所に絞り込むまで、コードのいくつかの行をコメントアウトしてみてください。

于 2012-08-01T16:59:16.530 に答える