【问题标题】:Debugging javascript and console.log not working调试 javascript 和 console.log 不起作用
【发布时间】:2012-10-14 04:58:51
【问题描述】:

我不知道该怎么做,但我正在尝试使用 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 开发人员工具,我单击控制台选项卡,我得到的只是:

日志:[对象对象] 日志:[对象对象],[对象对象] 日志:[对象对象],[对象对象] LOG:[对象对象],[对象对象],[对象对象]

我不明白?如何查看 setValuesArray 中的值? 我没有安装 firebug-lite。我在win 7 64位工作 谢谢

【问题讨论】:

  • 忘记 debug prints 并使用 Firebug 或 Chrome 的调试器。你很快就会感谢自己的。您可以像文件树一样浏览变量,这比尝试在控制台中创建自己的输出要方便得多。 IE 的调试器对我来说完全是个谜……我什至从来没有使用过它的成功迹象。 IE 是垃圾。

标签: javascript internet-explorer-9 firebug console.log


【解决方案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 Explorer 中,只有 7 个不具备对 JSON 对象的本机支持。但是您可以通过将 json2.js 库包含到您的页面来轻松解决这个问题 - 代码可在 GitHub 存储库 here 中找到。

【讨论】:

    【解决方案2】:

    您正在尝试记录对象,这就是您获得这些输出的原因。试试下面的日志或为你的对象使用 toString 方法。

       for (var i = setValuesArray.length - 1; i >= 0; i--) {
         var array = setValuesArray[i];
         console.log("key: "+setValuesArray[i].key+ " value: "+setValuesArray[i].value);
         ...
       }
    

    【讨论】:

      猜你喜欢
      • 2013-09-28
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 2023-03-08
      • 2021-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      相关资源
      最近更新 更多