[英]Monitor JavaScript output, such as console.log()
我一直在尋找Google和各種JavaScript網站,但是我還沒有找到答案。 有什么方法可以使用JavaScript / JQuery來監視諸如console.log()?
事件console.log()?
例如,當腳本調用console.log('foo');
進行單獨的,繁瑣的交易時,我想觸發一個偶數console.log('foo');
當將任何Web檢查器與JavaScript控制台一起使用時,很容易在腳本記錄日志時看到foo
彈出,但是有沒有辦法我可以用另一個腳本來掛接該事件?
從中借用的代碼是否可以在javascript中擴展控制台對象(用於重新路由日志記錄)? :
(function() {
var exLog = console.log;
console.log = function(msg) {
exLog.apply(console, arguments);
alert(msg);
}
})()
只要執行console.log()之前運行這段代碼,這應該使您在執行console.log()之后幾乎可以執行任何操作。
雖然您無法擴展控制台,但是可以包裝它的每個方法。 下面的代碼攔截所有日志記錄方法,並將每個調用記錄在一個名為log的變量中。
var actualConsole = window.console;
var c = window.console = {};
var log={};
for (var m in actualConsole){
if (typeof console[m] ==='object'){
c[m]=console[m];
}else if (typeof actualConsole[m] ==='function'){
c[m]=function () {
var args = Array.prototype.slice.call(arguments);
log[this]=log[this]||[];
log[this].push(args);
actualConsole[this].apply(actualConsole,args);
}.bind(m);
}// else - nothing else expected
}
console.log('log',1);
console.log('log',2);
console.error('error',1);
console.warn('warn',1);
actualConsole.log('log:',log);
日志看起來像:
{"log":[["log",1],["log",2]],"error":[["error",1]],"warn":[["warn",1]]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.