Javascript 萤火虫控制台
下面是我的代码块。由于我没有在IE中安装Firebug,每次尝试在Javascript 萤火虫控制台,javascript,jquery,firefox,firebug,Javascript,Jquery,Firefox,Firebug,下面是我的代码块。由于我没有在IE中安装Firebug,每次尝试在IE中测试代码时,我都会收到一条错误消息console未定义。所以我决定开发这段代码,以便console.log只在firefox中工作,并避免IE中出现错误消息 function clog() { if(window.console && window.console.firebug) { var a =[]; for(var i=0;i<arguments.leng
IE
中测试代码时,我都会收到一条错误消息console未定义。所以我决定开发这段代码,以便console.log
只在firefox中工作,并避免IE中出现错误消息
function clog() {
if(window.console && window.console.firebug) {
var a =[];
for(var i=0;i<arguments.length;i++) {
a.push(arguments[i]);
}
console.log(a.join(' , '));
}
}
函数阻塞(){
if(window.console&&window.console.firebug){
var a=[];
对于(var i=0;i当您调用这样的选择器时,比如说$('body')
您所做的是创建一个对象,一个jQuery对象…这样您的输出是正确的
如果要显示的内容不是.toString()
,则应调用该属性,例如:
$('body').selector //body
$('body').length //1
$('body').context //document
如果您使用的是console.log
,我发现在缺少时创建它(而不是在您想使用它时检查它)要容易得多,只需在任何日志代码之前运行此命令:
if (typeof console == "undefined") console = { log: function () { } };
然后,如果选中,则可以删除当前的
console.log(a);
而不是
console.log(a.join(' , '));
我应该这样做
Array.prototype.join
将所有数组入口连接成一个字符串
。这意味着
var b = [{}, "test"];
b.toString()
将求值为“”[object object],测试“
,而不管该对象中有什么方法
或成员
。调用.toString()
会丢失该信息。我总是编写一个包装函数(以防止非“控制台”浏览器出现问题)
您可以检查“msg”对象,然后检查类型以确定它是否是“jQuery”对象,并提取数据。更准确地说:它被称为JavaScript对象,而不是jQuery对象。;)@Marcel——两者都是……它实际上是一个jQuery对象的实例,就像数组是一个JavaScript对象,但具体来说它是一个数组:)为什么不if(window.console)
工作正常吗?如果控制台
不可用,它将计算为false
。@Marcel-不在IE中…昨天出现了这个问题,不要问我为什么,即使在IE8中,这个问题仍然存在,但没有在9中测试。啊,jQuery扩展了默认对象?我不是jQuery专家,我只是认为它返回了getElementById
对象。
function log(msg) {
try {
console.log(msg);
} catch(e){}
}