Коротка відповідь
Оголосіть команду в manifest.json і обробляйте власні назви слухачем верхнього рівня воркера. Використовуйте зарезервовану _execute_action, якщо скорочення має виконувати кнопку браузера; вона не викликає commands.onCommand. Запропоноване скорочення — запит типової прив’язки, а не гарантія.
Збережіть видиму альтернативу. Користувач може змінити чи видалити прив’язку, інше розширення — зайняти її, а ОС — мати пріоритет. Інструмент дослідження має працювати з панелі навіть без скорочення.
Практичні кроки реалізації
- Виберіть назву й опис завдання, наприклад
read-page-title. Не описуйте лише клавіші, бо користувач може їх змінити. - Дотримуйтеся синтаксису й платформних правил. На macOS
Ctrlзазвичай стає Command; за потреби задайте платформне значення.Ctrl+Altзаборонено для уникнення конфліктів AltGr. Не обіцяйте перевизначення зарезервованої ОС чи браузером комбінації. - Розрізняйте скорочення кнопки й власну команду. За налаштованого вікна
_execute_actionвідкриває його. Власна команда викликає слухач, який визначає дію й обробляє відсутні дані вкладки. - Перевіряйте
commands.getAll()і показуйте фактичну прив’язку в довідці. Порожнє скорочення означає непризначене; спрямовуйте доchrome://extensions/shortcutsзамість видавання пропозиції маніфесту за активну. - За можливості використовуйте одну поведінку для кнопки й скорочення. Повторне натискання не має дублювати накладки. Скорочення може бути викликом
activeTab, але обмеження захищених сторінок залишаються.
Font Picker ілюструє вузьке завдання, а не підтверджену реалізацію скорочення. Визначте, чи воно відкриває керування або відразу починає дослідження; користувач не має вгадувати за незрозумілою назвою.
Приклад реалізації
Фрагмент оголошує власну команду. Додайте activeTab, scripting і точку входу воркера. Обробник показує обмежений заголовок у консолі; повний продукт має також доступно показати результат чи відмову в UI.
{
"commands": {
"read-page-title": {
"suggested_key": { "default": "Ctrl+Shift+Y", "mac": "Command+Shift+Y" },
"description": "Read the current page title"
}
}
}
chrome.commands.onCommand.addListener((command, tab) => {
if (command !== "read-page-title" || !Number.isInteger(tab?.id)) return;
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: () => document.title.slice(0, 200),
}).then(([frame]) => console.log(frame?.result)).catch(console.error);
});
Перевірте призначену комбінацію після встановлення та зміни користувачем. Цей шлях потребує результату для забороненої сторінки; клавіші не усувають обмеження впровадження.
Компроміси та альтернативи
Скорочення кнопки підходить наявному керуванню, власна команда — чіткій прямій дії. Глобальні команди впливають на інші застосунки й мають суворіші правила; додавайте їх лише за потреби роботи без фокуса Chrome.
Поширені помилки
- Слухати
_execute_actionчерезonCommand. - Показувати запропоновану комбінацію гарантовано активною.
- Приховувати конфлікти без альтернативної кнопки.
- Замінювати команду розширення слухачем
keydownсторінки.
Контрольний список випуску
- Описи називають завдання.
- Фактичні прив’язки перевірені, непризначені пояснені.
- Кнопка й клавіші узгоджені.
- Захищені сторінки й повторення передбачувані.
- Комбінації вручну перевірені на підтримуваних системах.
Поширені запитання
Скільки скорочень можна запропонувати?
Поточна документація допускає максимум чотири пропозиції; додаткові оголошені команди користувач призначає сам.
Чи змінювати вибір користувача?
Не сприймайте типове значення маніфесту як наказ перезаписати вподобання. Покажіть фактичну прив’язку й поясніть зміну.
Яка корисна перевірка випуску?
Встановіть поряд інше розширення з тією самою пропозицією й переконайтеся, що функція доступна без призначеного скорочення.
Первинні джерела
Пов’язані посібники та приклади
Потрібно реалізувати це у вашому продукті?
Перегляньте відповідні приклади продуктів або поділіться контекстом розробки вебзастосунку, розширення Chrome, API чи SaaS.