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