Я пишу расширение Chrome, которое запускает сценарий с сочетанием клавиш. Это хорошо работает на большинстве страниц, но я понял, что на Gmail это не делает: кажется, что все события клавиатуры получены Gmail и не пузырятся до моей функции.
У меня есть сценарий содержания (в расширении Chrome, это добавляется к любой странице, которую Вы хотите), который имеет (упрощенный, конечно):
document.body.addEventListener('keypress', myFunction, true);
function myFunction(event) {
console.log("yay, Gmail didn't let me down!");
}
Но на самом деле, Gmail действительно подводит меня. Я знаю, что сценарий загружается. Я попробовал различные изменения window.addEventListener
и другие типы событий напрасно.
Кто-либо знает о способе обойти это? Я пытался видеть, мог ли сценарий GreaseMonkey сделать это, который принес мне здесь: http://code.google.com/p/gmail-greasemonkey/, но это не помогло мне.
Спасибо!
Я не знаю, как работает захват событий клавиатуры в GMail, но недавно я написал простой навигатор сочетаний клавиш (так что мне не нужно использовать мышь, чтобы щелкать ссылки) для Chrome.
Это не расширение, а сценарий пользователя / Greasemonkey, но он запускается двойным вводом запятой (,) и работает в GMail.
Может быть, это поможет вам взглянуть на источник. Вы можете скачать его здесь: http://userscripts.org/scripts/show/68609
Вы можете попробовать процесс перенаправления:
if (document.body.onkeypress) {
// add as event listener instead
var kpfunc = document.body.onkeypress;
document.body.addEventListener('keypress', kpfunc, true);
}