我正在处理一个系统,其中在页面的早期执行以下 Javascript 代码(这是我无法控制的)
if (!("console" in window) || !("firebug" in console))
{
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
"group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0; i < names.length; ++i)
window.console[names[i]] = function() {}
}
此代码似乎用于创建模拟console
对象,以防止在没有 javascript 控制台的环境中出现 javascript 错误。这很好,除了它还会阻止 Google Chrome 的控制台运行。条件明确地检查firebug
,但仅此而已
if (!("console" in window) || !("firebug" in console))
那么,有没有办法告诉 Chrome 的调试器重新初始化它的控制台对象呢?也就是说,用简单的英语告诉 Chrome
嘿,你知道当你加载一个页面并定义一个控制台对象供我使用吗?再做一次,这样我们就可以覆盖用户空间中某人所做的事情。
我意识到我可以做类似的事情
console.firebug = "faketrue";
并捕获了条件,但是我在系统中受到限制,并且无法在上述控制台重新定义命中之前添加 javascript。换句话说,不,我不能只是在头部开始之后添加一些 javascript 代码。