如果您在chrome控制台中运行它:
console.log.apply(null, [array])
Run Code Online (Sandbox Code Playgroud)
Chrome会给您一个错误:
// TypeError: Illegal Invocation
Run Code Online (Sandbox Code Playgroud)
为什么?(通过OSX在Chrome 15上测试过)
出于某种原因,Magento附带的原型框架(或其他JavaScript代码)正在取代标准的控制台功能,所以我无法调试任何东西.在JavaScript控制台中写下console我得到以下输出:
> console
Object
assert: function () {}
count: function () {}
debug: function () {}
dir: function () {}
dirxml: function () {}
error: function () {}
group: function () {}
groupEnd: function () {}
info: function () {}
log: function () {}
profile: function () {}
profileEnd: function () {}
time: function () {}
timeEnd: function () {}
trace: function () {}
warn: function () {}
Run Code Online (Sandbox Code Playgroud)
我Google Chrome version 13.0.782.112在Linux上使用.
Prototype JavaScript …
我想在测试我的网站时使用Google Chrome进行控制.如果我发现了一些错误,我想在开发人员>开发人员工具>控制台中使用链接查看.现在,我的Google Chrome浏览器未显示错误链接.例如.当我从数据库查询时,我使用jQuery显示此查询,但它有一些错误.但控制台无法输出此错误链接,也无法给我something.php代码.
当我编辑生产代码(小修复)时,我想添加console.log例如,但不要为没有firebug或不使用chrome的用户打破页面我决定重新定义控制台对象:
if (console == undefined) {
console = {
log : function(){},
info : function(){},
warn : function(){},
error : function(){}
};
};
Run Code Online (Sandbox Code Playgroud)
插入此代码后,JS-execution在没有控制台对象的浏览器中被破坏(IE,没有firebug的Firefox等).("破碎"我的意思是这些行之后的代码根本不执行)为什么会发生?
在使用javascript进行调试和开发时,我经常想要提醒对象,所以我使用了以下代码:
for(a in obj)
{
alert(a +' = '+obj[a])
}
Run Code Online (Sandbox Code Playgroud)
它很好用,但太烦人了.我想知道数组是否有这样的东西:
var temp = ['a','b','c'];
alert(temp); // it will alert a,b,c
Run Code Online (Sandbox Code Playgroud)
所以我想做的是:
var temp = {a:'a',b:'b',c:'c'};
alert(temp) ; // It should alert json {a:'a',b:'b',c:'c'}
Run Code Online (Sandbox Code Playgroud)
或者任何其他更好的建议,以便我可以轻松地查找对象.