Ho uno script che non posso modificare che fa molte chiamate a console.log. Voglio aggiungere un altro livello e rispondere se le chiamate contengono determinate stringhe. Questo funziona in FF, ma genera un errore "Illegal invocazione" in Chrome sulla linea 4:Intercetta le chiamate su console.log in Chrome
var oldConsole = {};
oldConsole.log = console.log;
console.log = function (arg) {
oldConsole.log('MY CONSOLE!!');
oldConsole.log(arg);
}
Delle idee come aggirare questo? Ho provato anche la clonazione del console ...
bello ... stato alla ricerca di qualcosa di simile. Può essere usato per decorare qualsiasi funzione in javascript? – Shane
@Shane, questo è lo schema di base per intercettare una chiamata di funzione, tuttavia mi raccomando di non usarlo se non assolutamente necessario. È molto meglio modificare semplicemente la funzione direttamente o utilizzare i concetti OOP. – zzzzBov
creazione di un framework in cui è necessario un elevato numero di componenti di runtime, sarebbe un utile strumento per un approccio esternamente al debug dei componenti o alla modifica di componenti esistenti con plug-in, ecc. C'è un impatto sulle prestazioni per questo approccio? Solo curioso di sapere quali sarebbero gli svantaggi. Non modificherò le funzioni intrinseche, solo i metodi dei componenti del framework. – Shane