In IE è possibile utilizzare la parola chiave debugger;
. Non è sicuro circa la cordialità x browser:
function sayHello() {
debugger; // will break here and launch script debugging in IE
alert('hello world');
}
Nel contesto della sfida:
function someKeyPress(e) {
debugger;
// inspect e.keyCode ... etc
}
Trovo che questa sia la tecnica di debug più efficace, ma poi ho spendere un sacco di tempo in IE. Molte persone sono a loro agio con Firebug, ma lo trovo molto scomodo e molto meno intuitivo rispetto al debugger di IE. Il debugger di IE offre una valutazione più semplice degli orologi e delle espressioni e fornisce anche tooltip interattivi basati sulla riflessione (come il debugger VS).
Inoltre, per la tua domanda "tracciare come è stato chiamato il metodo" - lo stack di chiamate è molto reattivo e facile da seguire indietro/su.
UPDATE:
Ecco uno script di immettere sul fondo di ogni pagina per intrappolare ed eseguire il debug di eventi, in IE:
<script type="text/javascript">
function wrapIfHandled(el, evt) {
if (el && evt && el['on' + evt]) {
el['_on' + evt] = el['on' + evt];
el['on' + evt] = function (e) {
foo(e, el['_on' + evt]);
};
}
}
function wrapAll() {
var allEl = document.getElementsByTagName("*");
for (var i = 0; i < allEl.length; i++) {
wrapIfHandled(allEl[i], 'click');
// wrapIfHandled(allEl[i], other event names <keyup, keydown, etc>
}
}
function foo(e, d) {
debugger;
d(e);
}
wrapAll();
</script>
Per questo devo sapere dove sono definiti i gestori di eventi chiave. Ma questo è esattamente il motivo della mia domanda, non so quali metodi del gestore di eventi sono invocati. Immagina un sistema software molto grande e vecchio: le cose potrebbero diventare difficili da trovare tutte. – MRalwasser