BlackHatSamurai
BlackHatSamurai

Reputation: 23503

Javascript Console.log Not working in Chrome, or Firefox

I am doing a very simple:

console.log("Testing");

along with :

alert("testing");

The Alert works (so I know the javascript is working) but I'm unable to see the log. When I use Firefox I get the following error:

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

What is going on? I have looked at the following topics, but none have helped:

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

I have also made sure that the funnel is working and that logging is turned on.

What else could the problem be?

Upvotes: 3

Views: 11509

Answers (5)

BlackHatSamurai
BlackHatSamurai

Reputation: 23503

Turns out the theme developer had added firebug lite to the theme without me knowing. Turning it off fixed the problem.

Upvotes: 1

campsjos
campsjos

Reputation: 1415

I had the same issue with a Magento e-commerce site (version 1.6.2.0).

I fixed it commenting the following lines in /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() {}
}

This fix is only (obviously) for Magento sites.

Upvotes: 1

Matt Pierce
Matt Pierce

Reputation: 11

I just came across this problem after a Firefox update and managed to fix it. Here's the code that caused the problem:

/* 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;
}

In the previous version of FireFox, "var console;" wouldn't get executed. Now it seems to have added some sort of branching/prediction mechanism. Seeing that I may define a variable called console with global scope, it disables window.console.

I fixed this issue by renaming var console; to 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;
}

I still need to test this to make sure it does what I expect in IE, though. I just need to find a copy of IE without a console (I think 9 or below).

I just wish that Firefox would tell you what line of what script disabled the console - that would be nice.

Upvotes: 1

Ristinolla
Ristinolla

Reputation: 1

First suggestion: Do you use any other dev tools that use console? On Firefox I had the same problem with Firebug running on background without me noticing it, after closing firebug the error went away. Here's a possiple duplicate thread: Firefox Web Console Disabled?

Second, if it is overridden by some script, then one by one disable scripts and see which draws the error.

Upvotes: 0

vanthome
vanthome

Reputation: 4924

I think the page you are viewing when trying to log via console.log() has a script in it which overwrites the property window.console.log. Usually this property is preset with a function by the browser but you a script may override it.

Upvotes: 0

Related Questions