gpt4 book ai didi

javascript - 是否可以在特定的 console.log() 条目后执行 Javascript 函数?

转载 作者:行者123 更新时间:2023-12-03 07:19:25 24 4
gpt4 key购买 nike

我正在使用一个非常有限的网络平台,该平台使用第 3 方 Javascript 库。在不列出其如何以及为何以这种方式运行的无关细节的情况下,我很好奇在出现特定的 console.log 条目后是否可以执行某些操作(例如执行 Javascript 函数)。系统非常锁定,但我正在努力改善应用程序的整体用户体验。

此 Javascript 库中的典型控制台日志条目通常如下所示:

data access_token=XXXXXXXXXXXXXXXX&type_name=user&attributes=["uuid","displayName","email"]

谷歌搜索会产生大量不相关的结果。我发现这涉及覆盖 console.log 方法,但这不是我想要的方法: How to get the console.log content as string in JavaScript

有什么想法吗?我假设您将当前内容转换为数组或字符串并解析结果。

最佳答案

您可以覆盖 console.log() 并保持它仍然记录到控制台,这样您就可以捕获输出并将日志记录保留在适当的位置。

这是一种方法:

var logEntries = [];

(function(oldLog) {

console.log = function(arg) {
// captures only first argument to console.log()
// could be expanded to concatenate all entries
logEntries.push(arg.toString());

// now call original console.log() with original arguments
return oldLog.apply(console, arguments);
};
})(console.log);

因此,现在在任何给定时间,logEntries 变量都将是发送到 console.log() 的所有内容的累积数组。这是一个简单的版本,不扩展对象或枚举数组。可以添加该区域的更多功能,但看起来您只是在寻找特定的字符串。

例如,如果您只想捕获包含“access_token”的内容,则还可以在添加到 logEntries 数组之前添加任何过滤。

<小时/>

如果您只想捕获包含 "access_token=" 的行,那么您可以像这样修改上面的代码:

var logEntries = [];

(function(oldLog) {

console.log = function(arg) {
if (typeof arg === "string" && arg.indexOf("access_token=") !== -1) {
logEntries.push(arg);
}

// now call original console.log() with original arguments
return oldLog.apply(console, arguments);
};
})(console.log);

关于javascript - 是否可以在特定的 console.log() 条目后执行 Javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36273144/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com