【发布时间】:2011-09-02 03:57:08
【问题描述】:
我正在处理一个系统,其中在页面的早期执行以下 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代码。
【问题讨论】:
-
@Rocket:重新阅读问题。该代码超出了我的控制范围。我正在尝试撤消它的影响。
-
@Alan:我错过了。这段代码是谁写的?去告诉他们这是错的!
-
您能创建一个不可见的 iframe 并从该窗口复制 window.console 吗?
-
@Rocket:并非所有问题都是技术问题
-
chrome 是您唯一需要担心的浏览器吗?还是所有非火狐浏览器?
标签: javascript google-chrome google-chrome-devtools