Как я могу обнаружить события клавиатуры в Gmail
Я пишу расширение для браузера, которое должно прикреплять обработчики к событиям keyup и keydown на всех страницах. Я могу заставить его работать довольно хорошо с помощью следующего кода скрипта контента.
document.addEventListener("keydown",keyDown, true);
document.addEventListener("keyup", keyUp, true);
Я не могу заставить это работать в Gmail все же. В частности, я не могу заставить его работать при составлении тела нового письма. Это будет работать везде, где я тестировал. Я думаю, что проблема в том, что Gmail звонитstopPropagation
на всех событиях клавиатуры, но трудно отладить их свернутый код. Я думал, что установка третьего параметра вtrue
будет вызывать событие во времяCAPTURE_PHASE
но это не работает
Как я могу захватитьkeyup
а такжеkeydown
события при создании нового тела в Gmail с помощью скрипта контента Google Chrome?
Редактировать:
Я гарантировал, что мои контентные скрипты внедряются во все iframe DOM, добавив"all_frames": true,
на мой манифест. Я даже пытался использовать следующий код:
document.addEventListener("DOMNodeInserted", function (event) {
if(event.type === "DOMNodeInserted") {
if(event.srcElement.nodeName === "IFRAME") {
console.log(event.srcElement.nodeName + " iframe detected");
event.srcElement.addEventListener("keydown", function(kevent) {
document.dispatchEvent(kevent);
}, true);
event.srcElement.addEventListener("keyup", function(kevent) {
document.dispatchEvent(kevent);
}, true);
}
}
},true);
Это все еще не решает проблему с Gmail.