错误的变量空间是不确定的?

时间:2012-04-07 20:45:50

标签: javascript html cookies

我运行下一个代码,我想念一些东西,对我来说似乎没问题:

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中犯了错误“空间未定义”为什么? 在Chrome中“未捕获的TypeError:无法调用未定义的方法” 感谢帮忙。

1 个答案:

答案 0 :(得分:2)

此代码永远不会适用于任何输入。

str已经是=拆分结果的一部分,即它不包含=符号。

然后您再次按=拆分该结果,这当然会返回单元素数组,而str.split("=")[1]将始终为undefined

看起来您正在尝试读取Cookie值...但根本不需要第二个.split("=")

啊,你在不同的浏览器中得到了不同的结果,因为它们在cookie中包含不同的数据。

PS:您可以写while( space.indexOf('%20' )+1) space = space.replace(/%20/,' ');而不是space = space.replace(/%20/g,' ');,而不是立即替换所有这些。