Я создаю расширение Chrome, которое использует привязки клавиш (т.е. будет использовать javascript keydown и обработчики событий keyup) через скрипт контента.Однако я наткнулся на препятствие, пытаясь заставить его работать с GMail.
Функция обработчика в следующем коде (скрипт содержимого), кажется, срабатывает только тогда, когда я общаюсь с кем-то через GChat:
$(window).bind('keydown', function(e){console.log('yay!');});
К сожалению, он не активируется нигде, в том числе, когда я пытаюсь отправить электронное письмо.Я посмотрел на источник веб-страницы GMail, и оказалось, что весь отображаемый контент находится в iFrame с идентификатором canvas_frame
, поэтому я попытался:
$('#canvas_frame').content().live('keydown', function(e){console.log('yay!');});
и это:
$('#canvas_frame').content().find('body').live('keydown', function(e){
console.log('yay!');
});
К сожалению, это тоже не сработало.
Мой manifest.json
выглядит так:
{
"name": "extension",
"version": "1.0",
"description": "description",
"background_page": "background.html",
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"css": [],
"js": [
"main.js"
]
}
],
"all_frames": true,
"permissions": [
"http://*/*", "https://*/*"
]
}
Мне было интересно, есть ли у кого-нибудь подсказка о том, что происходит,какой правильный способ сделать это с GMail, и если $('#canvas_frame').content().live(...)
правильный путь для этого.
Спасибо!