Я создаю расширение, которое позволит пользователям использовать хромированную вкладку, переключающуюся на браузер Vivaldi.Расширение Chrome keydown слушателя в background.js
В моем background.js я попытался
addEventListener("keydown", function(e) {
console.log(e.code); // never gets here
})
Первоначально я имел случай быть обработано с помощью content.js сценария, однако это требует каких-либо новые вкладки, которые будут полностью загружены, прежде чем я мог бы посылать сообщения в background.js script
function Listener()
{
this.stage = 0;
this.listen();
}
Listener.prototype.listen = function()
{
addEventListener("keydown", this.handleKeyDown);
addEventListener("keyup", this.handleKeyUp);
}
Listener.prototype.handleKeyDown = function(event)
{
for(var i = 0; i < 9; i++) {
if(event.ctrlKey) {
if(event.code == "Digit" + (i + 1)) {
chrome.runtime.sendMessage({
greeting: i
}, function(response) {
console.log(response);
})
}
}
}
}
new Listener();
Я хочу переместить эту функцию на свой background.js, чтобы она выполнялась независимо от действий браузера.
Только контент-скрипт имеет доступ к DOM, относящемуся даже к текущей веб-странице, что означает «для этого требуется, чтобы все новые вкладки были полностью загружены, прежде чем я мог отправлять сообщения на сценарий background.js»? Когда вы хотите, чтобы ваши скрипт, который должен быть выполнен? –
Я хочу, чтобы мой скрипт выполнялся независимо от того, какие вкладки загружены. @HaibaraAi - это переключатель вкладок, поэтому, если я открою новую вкладку, я хочу использовать комбинацию клавиш для переключения на вкладку один с, например, ctrl + 1, что я могу сделать, но мне просто нужно дождаться загрузки новой вкладки. –
, тогда я считаю, что @Xan прав, 'chrome.commands' для этой цели, хотя многие ограничения, как и все ключевые комбинации должны включать Ctrl или Alt, .... –