2012-04-07 8 views
0

私は次のコードを実行すると、私は気にいらを欠場、私にとってそれはOKに見える:なぜ「未定義である空間」エラーの可変領域は定義されていませんなぜですか?

window.onload = TitleFieldInit; 
function TitleFieldInit() { 
    var str = document.cookie.split("=")[1]; 
    var space = str.split("=")[1]; 
    space = space.split(";")[0]; 
    alert(space); 
    // while(space.indexOf('%20')+1) space = space.replace(/%20/,' '); 
    if (document.cookie != "") { 
     document.getElementById("TitleField").innerHTML = "Your Title is : " + space; 
    } 
}​ 

と私は、Firefoxのrrorに誤るてしまいましたか? クロムで "Uncaught TypeError:Undefined"Thxのメソッド'split 'を呼び出すことができません。

答えて

2

このコードはどの入力に対しても機能しません。

strは、既に=によって分割された結果の一部であり、すなわち、=シンボルを含まない。

次に、結果を=で再分割します。もちろん、1要素の配列が返され、str.split("=")[1]は常にundefinedになります。

クッキー値を読み取ろうとしているようですが、第2の.split("=")はまったく必要ありません。

ああ、異なるブラウザでは結果が異なり、Cookieに異なるデータが含まれているためです。

PS:while(space.indexOf('%20')+1) space = space.replace(/%20/,' ');の代わりに、space = space.replace(/%20/g,' ');と書いて、一気にすべてを置き換えることができます。

関連する問題