我运行下一个代码,我想念一些东西,对我来说似乎没问题:
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:无法调用未定义的方法” 感谢帮忙。
答案 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,' ');
,而不是立即替换所有这些。