Tor*_*rek 52 javascript debugging firefox
是否可以从网页中运行的JavaScript代码向Firefox的内置错误控制台添加消息?
我知道我有Firebug,它提供了一个console对象和它自己的错误控制台,但我之前正在寻找一个快速修复,但找不到任何东西.
我想可能根本不可能防止恶意网页发送垃圾邮件?
小智 46
如果您定义一个检查window.console是否存在的全局函数,您可以使用Firebug进行跟踪,并且仍可以与其他浏览器一起使用和/或如果您关闭Firebug的控制台跟踪:
debug = function (log_txt) {
if (typeof window.console != 'undefined') {
console.log(log_txt);
}
}
debug("foo!");
Run Code Online (Sandbox Code Playgroud)
Fab*_*ani 33
是的,你可以= 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)
Run Code Online (Sandbox Code Playgroud)
更新到实际功能
这是一个简单的黑客,只是为了好玩.
Ben*_*ank 32
您无法直接从不受信任的JavaScript(例如来自页面的脚本)写入控制台.但是,即使安装Firebug对您没有吸引力,我也建议您查看Firebug Lite,它不需要安装到浏览器中(事实上,它甚至不需要Firefox).这是一个可以包含在任何网页中的脚本(甚至是动态的),它将为您提供一些基本的Firebug功能(例如console.log()).
ski*_*age 14
即使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.*的设置.
我只是安装Firebug并使用console.log.但是,如果你不能这样做,你总是会抛出一个错误:
throw "foobar";
throw new Error("bazquux");
Run Code Online (Sandbox Code Playgroud)
当然,这会让你脱离你当前正在执行的代码,所以你不能用它来进行详细的日志记录,但如果你可以解决这个问题,我认为这是从盒子里取出一些东西的唯一方法.