当前位置:  开发笔记 > 编程语言 > 正文

从JavaScript登录到Firefox错误控制台

如何解决《从JavaScript登录到Firefox错误控制台》经验,为你挑选了5个好方法。

是否可以从网页中运行的JavaScript代码向Firefox的内置错误控制台添加消息?

我知道我有Firebug,它提供了一个console对象和它自己的错误控制台,但我之前正在寻找一个快速修复,但找不到任何东西.

我想可能根本不可能防止恶意网页发送垃圾邮件?



1> 小智..:

如果您定义一个检查window.console是否存在的全局函数,您可以使用Firebug进行跟踪,并且仍可以与其他浏览器一起使用和/或如果您关闭Firebug的控制台跟踪:

debug = function (log_txt) {
    if (typeof window.console != 'undefined') {
        console.log(log_txt);
    }
}

debug("foo!");


没有必要包装console.log函数.通过包装它您将失去格式化功能.只需将其分配给调试函数:`var debug = function(){}; if(window.console!= undefined){debug = console.log; }`.现在你也可以这样做:`debug("%s","a")`

2> Fabiano Sori..:

是的,你可以= P.

function log(param){
    setTimeout(function(){
        throw new Error("Debug: " + param)
    },0)
}

//Simple Test:
alert(1)
log('This is my message to the error log -_-')
alert(2)
log('I can do this forever, does not break')
alert(3)

更新到实际功能

这是一个简单的黑客,只是为了好玩.


@nornagon是的,我明白了,它会更好用一个函数,但我这样做是为了兼容IE坏setTimeout()

3> Ben Blank..:

您无法直接从不受信任的JavaScript(例如来自页面的脚本)写入控制台.但是,即使安装Firebug对您没有吸引力,我也建议您查看Firebug Lite,它不需要安装到浏览器中(事实上,它甚至不需要Firefox).这是一个可以包含在任何网页中的脚本(甚至是动态的),它将为您提供一些基本的Firebug功能(例如console.log()).



4> skierpage..:

即使Firebug 1.6X.0b1已启用并打开,Firefox 4 beta 6中也未定义window.console,可能是因为其他人讨论的权限问题.但是,Firefox 4有一个新的工具> Web控制台,如果这是打开的,你有一个window.console对象,页面上不受信任的JavaScript代码可以使用console.log().Web控制台不断变化(请参阅https://wiki.mozilla.org/Firefox/Projects/Console),您可能需要在about:config,YMMV中更改名为devtools.*的设置.



5> Brian Campbe..:

我只是安装Firebug并使用console.log.但是,如果你不能这样做,你总是会抛出一个错误:

throw "foobar";
throw new Error("bazquux");

当然,这会让你脱离你当前正在执行的代码,所以你不能用它来进行详细的日志记录,但如果你可以解决这个问题,我认为这是从盒子里取出一些东西的唯一方法.


如果你想要一个非阻塞错误消息(例如,监视循环中的变量),请使用setTimeout("throw new Error('Wheeeeeeee!')",0);
bazquux完全是我想要通知自己的错误类型
推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有