En IE se puede utilizar la palabra clave debugger;
. No está seguro sobre la amabilidad x-navegador:
function sayHello() {
debugger; // will break here and launch script debugging in IE
alert('hello world');
}
En el contexto de su reto:
function someKeyPress(e) {
debugger;
// inspect e.keyCode ... etc
}
me parece que esta es la técnica de depuración más eficaz, pero por otra parte me paso mucho tiempo en IE. Muchas personas son cómodas con Firebug, pero me parece engorroso y mucho menos intuitivo que el depurador de IE. El depurador de IE proporciona una evaluación más fácil de los relojes y las expresiones, y también proporciona información sobre herramientas interactiva basada en la reflexión (como el depurador VS).
Además, según su pregunta "trace qué método se llamó", la pila de llamadas es muy sensible y fácil de seguir.
ACTUALIZACIÓN:
Aquí es un script para colocar en la parte inferior de cada página para atrapar y depurar los eventos, en el 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>
Para esto hay que saber donde se definen los controladores de eventos clave. Pero esta es exactamente la razón de mi pregunta, no sé qué métodos de controlador de eventos se invocan. Imagina un sistema de software muy grande y antiguo: las cosas podrían ser difíciles de encontrar todas. – MRalwasser