gpt4 book ai didi

jquery - 如何在 jQuery 小部件中切换 console.log?

转载 作者:行者123 更新时间:2023-12-01 01:11:02 25 4
gpt4 key购买 nike

最近我一直在开发一些用于工作/娱乐的 jQuery 小部件 ( github ),但仍然有一些事情困扰着我。

当我在应用程序中使用小部件时,我希望能够传递一个调试选项,该选项将仅在此插件中完全启用或禁用日志记录(使用 console.log)。

<小时/>

迄今为止最好的解决方案:

来自:

(function( $, undefined ) {

})(jQuery);

至:

(function( $, console, undefined ) {

if (!o.debug) console = { log: function(){} };

})(jQuery, console);

还有一个问题

如果我加载两个小部件,例如:

$myDiv.myWidget({debug: true});
$myDiv2.myWidget({debug: false});

我不会再从第一次实例化开始进行调试。有什么想法吗?

<小时/>

[原文]到目前为止,我已经使用了在互联网上找到的一段代码:

var logger = function() {
var oldConsoleLog = null;
var pub = {};

pub.enableLogger = function enableLogger() {
if(oldConsoleLog == null) return;
window['console']['log'] = oldConsoleLog;
};

pub.disableLogger = function disableLogger() {
oldConsoleLog = console.log;
window['console']['log'] = function() {};
};

return pub;
}();

然后在_create()上我可以做这样的事情:

if (!o.debug) {
logger.disableLogger();
}

看起来不错,但是,它不是特定于插件的,因为它将禁用我的整个应用程序的 console.log。

一个重要的一点是,我希望能够保留 console.log 行日志记录功能(不包装 console.log,因为据我所知/尝试过,它将用无用的包装调用行替换日志记录行信息)。

谢谢!

最佳答案

我能想到的最简单的选择是覆盖范围内的控制台。像这样。

(function(console){
if (!o.debug) console = { log: function(){} };

// Rest of your code goes here
})(console);

关于jquery - 如何在 jQuery 小部件中切换 console.log?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739400/

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