В IE вы можете использовать ключевое слово debugger;
.Не уверен насчет дружественности к x-браузеру:
function sayHello() {
debugger; // will break here and launch script debugging in IE
alert('hello world');
}
В контексте вашей задачи:
function someKeyPress(e) {
debugger;
// inspect e.keyCode ... etc
}
Я считаю, что это наиболее эффективный метод отладки, но потом снова трачумного времени в IE.Многим нравится Firebug, но я нахожу его громоздким и гораздо менее интуитивным, чем отладчик IE.Отладчик IE обеспечивает более простое отслеживание и оценку выражений, а также предоставляет интерактивные всплывающие подсказки (например, отладчик VS).
Кроме того, на ваш вопрос «проследите, какой метод был вызван» - стек вызовов очень отзывчив и простследовать назад / вверх.
ОБНОВЛЕНИЕ:
Вот скрипт для размещения в нижней части каждой страницы для перехвата и отладки событий в 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>