javascript - 如何查找消息是否已打印到控制台

标签 javascript google-chrome firefox

假设我在浏览器中运行我的 Javascript 项目并且我在一个特定的模块中,我可以检查是否已经消息打印到控制台?即从控制台读取消息...

例如,我在我的 js.file 内部函数中想要检查是否已经在控制台中打印了 hello world。

最佳答案

jthanto 的回答给了我一个想法。我不认为这是好的做法,但如果必须,您可以定义自己的控制台类:

var MyConsole = function(oldConsole) {
    // store all messages ever logged
    this.log = [];
    // keep a pointer to oldConsole
    this.oldConsole = oldConsole;
}

MyConsole.prototype.log = function(args) {
    // push the message into log
    this.log.push(Array.prototype.join.call(args));
    // call oldConsole.log to actually display the message on the console
    if (this.oldConsole)
        this.oldConsole.log.apply(this.oldConsole, args);
}

// TODO: implement all other console methods in this fashion (apply for all console API methods)
MyConsole.prototype.<method> = function(args) {
    if (this.oldConsole)
        this.oldConsole.<method>.apply(this.oldConsole, args);
}

// method to check if something was printed
MyConsole.prototype.wasLogged(message) {
    return this.log.indexOf(message)!==-1;
}

// replace console with an instance of MyConsole, pointing to the old console
console = new MyConsole(console);

将它保存在一个文件中并首先加载它(就在你的标签的顶部)

像这样使用它:

if (console.wasLogged("Hello World"))
    doStuffz();

希望对您有所帮助。请注意它没有经过测试,但应该给你一些指示:)

关于javascript - 如何查找消息是否已打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31830877/

相关文章:

javascript - 如何为我的应用程序创建用户首次屏幕指南

google-chrome - 私有(private) Beta 测试 Chrome 扩展程序

javascript - 使用 edge.js 获取对象

javascript - 从 Canvas 保存图像,而无需使用“另存为”

javascript - 如何获取从客户端到服务器的单程旅行的延迟时间

Firefox 中带有自定义 header 的 Javascript Dojo AJAX (XHR) 请求

在 Mac OSX 上的 Firefox 中使用 JQuery 的 Javascript 表构造错误

android - Chrome 中 Bootstrap 4 底部的巨大空白

html - 在悬停时更改子项的 CSS 可以在 firefox 或 chrome 中使用

Firefox 中的 CSS 过渡效果