Gmail, кажется, получает все события клавиатуры. Какой-либо способ обойти это?

Я пишу расширение 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/, но это не помогло мне.

Спасибо!

10
задан Timothée Boucher 24 February 2010 в 05:44
поделиться

2 ответа

Я не знаю, как работает захват событий клавиатуры в GMail, но недавно я написал простой навигатор сочетаний клавиш (так что мне не нужно использовать мышь, чтобы щелкать ссылки) для Chrome.

Это не расширение, а сценарий пользователя / Greasemonkey, но он запускается двойным вводом запятой (,) и работает в GMail.

Может быть, это поможет вам взглянуть на источник. Вы можете скачать его здесь: http://userscripts.org/scripts/show/68609

1
ответ дан 4 December 2019 в 04:36
поделиться

Вы можете попробовать процесс перенаправления:

if (document.body.onkeypress) {
    // add as event listener instead
    var kpfunc = document.body.onkeypress;
    document.body.addEventListener('keypress', kpfunc, true);
}
0
ответ дан 4 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: