我需要console.log(),但是它无法正常工作,因为有人在生产站点中做了一些阻止它的操作。还有其他方法可以打印到控制台吗?还是使用可以打印完整对象的警报,例如console.log()呢?还是重新定义console.log()使其重新工作的方法?

jQuery库可供我使用。

最佳答案

根据他们阻止它的方式,您可以使用类似这样的东西。

    console.log = function fake() {};
    console.log("oh no! it's not working!")

    delete console.log;
    console.log("whew.  back again.");


这只是删除了应用的自定义定义。

如果他们做了比这更聪明的事情,您也许可以做这样的事情。这会创建一个带有全新iframe对象的全新window,您可以从中提取原始的console。这仅在body元素已经存在的情况下有效。

    var frame = document.createElement("iframe");
    frame.style.display = "none";
    document.body.appendChild(frame);

    var myConsoleLog = function(message) {
        (frame.contentWindow || frame).console.log(message);
    }
    myConsoleLog("this works too!");

09-17 20:22
查看更多