Я пытаюсь написать небольшой скрипт Greasemonkey/букмарклет/что у вас есть для Google Docs. Функциональность, которую я хотел бы добавить, нуждается в обработчике событий keypress/keyup/keydown (одного из этих трех). К сожалению, Javascript не моя сильная сторона, и я не могу зафиксировать (?) событие нажатия клавиши, находясь в панели редактирования. В крайнем случае я пробовал следующее:
javascript:(function(){
els = document.getElementsByTagName("*");
for(i=0;i<els.length;i++){
els[i].onkeypress=function(){alert("hello!");};
els[i].onkeyup=function(){alert("hello2!");};
els[i].onkeydown=function(){alert("hello3!");};
}
})();
Тем не менее, это по-прежнему не фиксирует нажатия клавиш в панели редактирования - никаких надоедливых предупреждений (хотя, похоже, это работает для большинства других сайтов...). Я проверил в Chrome и Firefox оба (я не могу заставить его работать ни в одном из них).
Я попробовал «Журналировать события» в Firebug (и проверил все зарегистрированные события с помощью аккуратного небольшого расширения для Firebug, Eventbug); не похоже, чтобы эти события срабатывали при нажатии клавиш.
Редактировать:
Чтобы пояснить [Тима], я сделал этот скриншот с некоторыми аннотациями...
«Панель редактирования», о которой я говорю, кажется набором элементов div с Javascript, отображающих то, что я печатаю.
Любые идеи? Спасибо!