Javascript Console.log无法在Chrome或Firefox中使用

时间:2014-01-10 19:49:33

标签: javascript wordpress google-chrome firefox logging

我做的很简单:

console.log("Testing");

以及:

alert("testing");

警报有效(所以我知道javascript正在运行)但我无法看到日志。当我使用Firefox时,我收到以下错误:

  

The Web Console logging API (console.log, console.info, console.warn, console.error) has been disabled by a script on this page.

发生了什么事?我查看了以下主题,但没有一个有帮助:

Chrome: console.log, console.debug are not working

console.log quit working in Chrome

Console.log not working in Chrome [closed]

why does console.log not output in chrome? Console.log not working at all

我还确保漏斗正常工作并且已启用日志记录。

问题还有什么问题?

5 个答案:

答案 0 :(得分:1)

我刚刚在Firefox更新后遇到了这个问题,并设法解决了这个问题。以下是导致问题的代码:

/* IE fix that allows me to still log elsewhere */
if (typeof(console)=="undefined") {
    var console = {
        output: null,
        log: function (str) {
            // we can't emulate the console in IE, but we can cache what's output
            // so that IE users can get it via console.output
            if (!this.output) this.output = new Array();
            this.output.push(new String(str));
        }
    };
    window.console = console;
}

在之前版本的FireFox中," var console;"不会被执行。现在它似乎增加了某种分支/预测机制。看到我可能定义了一个名为 console 的变量,它具有全局范围,它会禁用 window.console

我通过将 var console; 重命名为 var cons;

来修复此问题
/* IE fix that allows me to still log elsewhere */
if (typeof(console)=="undefined") {
    var cons = {
        output: null,
        log: function (str) {
            // we can't emulate the console in IE, but we can cache what's output
            // so that IE users can get it via console.output
            if (!this.output) this.output = new Array();
            this.output.push(new String(str));
        }
    };
    window.console = cons;
}

我仍然需要对此进行测试,以确保它能够达到我在IE中的预期。我只需要找一个没有控制台的IE副本(我认为9或以下)。

我只是希望Firefox会告诉你哪些脚本禁用了控制台 - 这样会很好。

答案 1 :(得分:1)

我在Magento电子商务网站(版本1.6.2.0)上遇到了同样的问题。

我修正了它在/js/varien/js.js:637

中评论以下几行
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() {}
}

此修复仅(显然)适用于Magento网站。

答案 2 :(得分:1)

原来,主题开发人员在我不知情的情况下为主题添加了firebug lite。关闭它解决了问题。

答案 3 :(得分:0)

我认为您在尝试通过console.log()进行登录时正在查看的页面中有一个脚本会覆盖属性window.console.log。通常,此属性由浏览器预设,但脚本可以覆盖它。

答案 4 :(得分:0)

第一个建议:您是否使用任何其他使用控制台的开发工具?在Firefox上我遇到了同样的问题,Firebug在后台运行而没有注意到它,关闭firebug后错误就消失了。这是一个可能的重复帖子:Firefox Web Console Disabled?

其次,如果它被某些脚本覆盖,则逐个禁用脚本并查看哪个绘制错误。