Сочетания клавиш в расширениях Chrome - PullRequest
2 голосов
/ 29 ноября 2011

Я пытаюсь подключить сочетание клавиш для моего расширения Chrome.Для этого я использую плагин jQuery: http://oscargodson.com/labs/jkey/.

Вот код, который я использую для его проверки:

$(document).ready(function() {
    function say_hello() {
       alert("hello!");
    }
    $(document).jkey('/', say_hello);
});

У меня это сейчас на моей фоновой странице,но это не работаетЯвляется ли этот тип кода чем-то, что должно идти на фоновой странице, или что-то более подходящее для скрипта контента?Или я должен поместить это где-нибудь еще полностью?

Ответы [ 2 ]

3 голосов
/ 09 марта 2015

Я знаю, что этот вопрос древний, но на тот случай, если вы не обнаружили, вот последнее решение вашей проблемы:

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

Вот как его настроить:

  1. Добавьте ключ «команды» в корень manifest.json, заполненный одной или несколькими командами (в этом случае «Перезапустить приложение»).Каждая команда должна указывать желаемую комбинацию клавиш для ПК и Mac.(Некоторые комбинации, такие как ctrl-f5, ограничены, к вашему сведению. Я также не уверен, является ли описание необязательным или обязательным.)

    "commands": {
      "Restart App": {
        "suggested_key": {
          "default": "Ctrl+Shift+5",
          "mac": "Command+Shift+5"
        },
        "description": "Restart my app (Debugging)"
      }
    }
    
  2. В background.js свяжите обработчик ссобытие «onCommand» и фильтр «command», который будет соответствовать ключу, объявленному в вашем манифесте при нажатии вашей комбинации:

    chrome.commands.onCommand.addListener(function (command)
    {
        if (command == "Restart App")
        {
            chrome.runtime.reload();
        };
    });
    

И все!

У меня были люди, ставящие под сомнение ценность горячих клавиш, но я их решительный сторонник.Время, сэкономленное переключением шаблона «мышь / клавиатура» только на клавиатуру, составляет, вероятно, <1 сек за использование, но после нескольких тяжелых сеансов отладки оно начинает складываться.Добавление ярлыка в приведенном выше примере к приложениям, которые я разрабатываю, вероятно, сэкономило <strong>часов моего времени к настоящему времени:)

Наслаждайтесь!

-Matt

1 голос
/ 29 ноября 2011

Фоновые страницы не могут (обычно) фокусироваться или нажиматься, поэтому они никогда не получают события. Вы должны внедрить это как скрипт контента.

Обратите внимание, что это не будет работать на некоторых страницах, включая страницу "Новая вкладка". К сожалению, нет никакого способа обойти это. : /

...