0

我运行下一个代码,但我想念一些东西,对我来说似乎还可以:

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"space is undefined" 为什么?在 chrome 中“Uncaught TypeError:Cannot call method'split' of Undefined”谢谢帮助。

4

1 回答 1

2

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

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

然后你再次将该结果拆分为=,这当然会返回一个元素数组,并且str.split("=")[1]永远是undefined

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

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

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

于 2012-04-07T20:50:37.577 回答