我不知道如何做到这一点,但我正在尝试使用console.log调试一些JS值:
function SetAPIValue(key1, value1, scormVersion, methodCalled) {
/* key1 value sometimes contains the value true or false and dont want to store these! */
if (key1 == true || key1 == false) { }
else
{
/* value1 comes back with two values for cmi.suspend_data, then 3, then 4 all in one string seperated by a ';'! */
setValuesArray.push({
key: key1,
value: value1
});
for (var i = setValuesArray.length - 1; i >= 0; i--) {
var array = setValuesArray[i];
console.log(setValuesArray);
if (array.key == key1) {
if (key1 = "cmi.suspend_data") {
if (value1.indexOf(";") > 0)
{
valueArray[j] = value1.split(";");
alert(valueArray[j]);
//alert("key1 is" + key1 + "and is returning " + setValuesArray[j-1].value);
return valueArray[j];
}
}
else
return setValuesArray[i].value;
}
}
}
return "";
}
我正在尝试查看console.log(setValuesArray)中的内容。当我在IE9中运行我的应用程序时,我启用了F12开发人员工具,我点击控制台选项卡,我所到达的就是:
日志:[对象] 日志:[对象对象],[对象对象] 日志:[对象对象],[对象对象] 日志:[对象对象],[对象对象],[对象对象]
我不明白?如何在setValuesArray中查看值? 我没有安装firebug-lite。我在win 7 64bit工作 感谢
答案 0 :(得分:1)
您正在尝试记录对象,这就是您获得这些输出的原因。尝试下面的日志或使用toString方法为您的对象。
for (var i = setValuesArray.length - 1; i >= 0; i--) {
var array = setValuesArray[i];
console.log("key: "+setValuesArray[i].key+ " value: "+setValuesArray[i].value);
...
}
答案 1 :(得分:1)
我认为使用console.log是更好的方法(与使用警报相比)。
但是,请记住,console.log()和alert()都将显示输入参数的字符串表示形式以及“[object object]”的JS对象。
我可以推荐的是坚持使用console.log()的想法,但是如果你希望能够在旧的浏览器(IE的早期版本)中使用它,你可能想看一下这篇文章。在多数情况下): http://patik.com/blog/complete-cross-browser-console-log/
此外,当您希望打印描述JS对象内容的字符串时,可以使用JSON.stringify()。 因为,在Internet Explorers中,只有7个是没有JSON对象的本机支持的。但是你可以通过将json2.js库包含到你的页面来轻松解决这个问题 - 代码可以在GitHub存储库here中找到。