Подтвердить что ты не робот

Chrome extension: Как получить ключевые события

Есть ли способ получить ключевые события в файле расширения chrome Google - background.html -?

document.onkeydown = function() {
  alert('test)
};

Предыдущий код не работает.

4b9b3361

Ответ 1

Я предполагаю, что вы хотите реализовать горячие клавиши для своего расширения. Фактически ваш код должен работать, за исключением того, что он работает на фоновой странице, которая обычно не открыта для блокировки нажатий клавиш.

Чтобы уловить нажатия клавиш во всем мире или, по крайней мере, на веб-страницах, вам нужно будет использовать контент script, который отправляет сообщения на исходную страницу. Содержимое script вводится на открытую веб-страницу и вставляет методы для захвата нажатий клавиш, а затем отправляет сообщение на фоновое изображение с информацией о том, какие клавиши нажаты.

Ответ 2

Не уверен, что это все еще активно, но обновление может помочь кому-то вроде меня, который сейчас играет с расширениями Chrome. Новые команды api позволяют получать те же функции без использования содержимого script.

Используйте файл manifest.json для регистрации команд клавиатуры. Например:

...    
"commands": {
    "save" : {
        "suggested_key": {
             "default": "Alt+Shift+S" 
        },
        "description": "Save a link"
    },
    "random": {
        "suggested_key": {
            "default": "Alt+Shift+L"
        },
        "description": "Load a random link"
    }
}
...

а затем вы можете поймать его на своей фоновой странице

chrome.commands.onCommand.addListener(function (command) {
    if (command === "save") {
        alert("save");
    } else if (command === "random") {
        alert("random");
    }
});

Надеюсь, это поможет!