-1

Я работаю над расширением, я хочу, чтобы мое расширение chrome было переключено (показать/скрыть) с помощью команды вроде say (mac: «CMD + SHIFT + 9» или по умолчанию: "Ctrl + Shift + 9"); Хотя я определил команду в моем файле манифеста:Keyboard shortcut to Toggle (скрыть/показать) my chrome extension

{ 
    ......... 
    "commands": { 
    "toggle-window": { 
     "suggested_key": { 
     "default": "Ctrl+Shift+9", 
     "mac": "Command+Shift+9" 
     }, 
     "description": "Toggle feature foo", 
     "global": true 
    }, 
    ........ 
} 

Теперь, Что я могу сделать в моем backgroundScript.js, чтобы сделать это?

мои backgroundScript.js является:

chrome.commands.onCommand.addListener(function(command) { 
    if(command === "toggle-window") { 
     console.log('Command:', command); 
     /* Logic to show/hide will go here..*/ 
    } 
}); 

Как я сделать это? Благодаря!

Sample Extension демо, осуществивших эту функцию «показать/скрыть»:

https://chrome.google.com/webstore/detail/meldium-browser-extension/fdocegmnehjgfhfjelhmaobjccoiklle

+1

Когда я впервые увидел это в очереди просмотра сортировки, я подумал, что это похоже на достойный вопрос ... но когда я прочитал, я увидел эту фразу: «Дайте мне код PLZ ...». Не делай этого. Мы не здесь, чтобы написать ваш код для вас, но мы будем рады помочь вам ответить на любые ваши конкретные вопросы. – JNYRanger

+1

Я предполагаю, что вы хотите поведением этого расширения ... для этого вам не нужна логика в вашем фоновом скрипте. Просто используйте «_execute_browser_action» вместо «toggle-window» в вашем файле манифеста, chrome будет обрабатывать эту функцию для вас. Прочитайте [this] (https://developer.chrome.com/extensions/commands). – cviejo

+0

Спасибо за ответ, хотя, я не хотел, чтобы вы дали мне axact-код, что я имею в виду, просто дайте мне основную идею, хотя я пытаюсь описать то, что вы описали, и сообщит вам об этом .. Спасибо – narainsagar

ответ

0

После долгих исследований я, наконец, получил его решить .. Прежде всего, благодаря @CViejo, он дал мне намек на проблему:

«Просто используйте„_execute_browser_action“вместо„переключения окна“в вашем файле манифеста, хром будет обрабатывать эту функциональность для вас

.

Я обновил свой manifest.js файл, как это, как @CViejo сказал:

{ 
    ......... 
    "commands": { 
    "_execute_browser_action": { 
     "suggested_key": { 
     "default": "Ctrl+Shift+9", 
     "mac": "Command+Shift+9" 
     } 
    } 
    ........ 
} 

тогда, я перезарядил свое расширение, но он все еще не работал .. тогда я просто найти клавиатуры ярлыки окна на в нижней части страницы расширений, я читаю об этом в Интернете, это в основном помогает нам «проверить, что предлагаемые клавиши действительно установлены там в поле« Ярлыки клавиш », которые определены в файле манифеста». Я проверил ярлыки клавиш. Ключ не был установлен, даже если ключ был доступен и определен в манифесте.

И затем из переполнения стека, я нашел это (что было большой ошибкой): https://stackoverflow.com/a/25654514/5228251

Как вы можете видеть в исходном коде здесь: https://code.google.com/p/chromium/codesearch#chromium/src/chrome/browser/extensions/api/commands/command_service.cc&l=303&sq=package:chromium&rcl=1409677023

Ключ связывания обновление является запускается только при активации OnExtensionWillBeInstalled .

Так что вам нужно удалить и переустановить локальное расширение, чтобы увидеть команду клавиатуры по умолчанию появляется в: хром: // Extensions/configureCommands

Я просто Uninstalled в повторно установил свой распакованное расширение и проверить, что команда клавиатуры по умолчанию появляются в хроме: // Extensions/configureCommands

и начал работал в моем расширении ...

Большое спасибо @CViejo и @Stephane Brillant ...

Это может помочь другим .....

+0

Я сейчас пытаюсь удалить/переустановить с распакованным расширением прямо сейчас и ничего не получаю. Интересно, изменилось ли это (или, если мне не хватает чего-то другого)? – MrColes

+0

* UPDATE: * похоже, что я потенциально попадал в эту проблему (попробовал Ctrl + Shift + P) - «* Некоторые ярлыки Chrome (например, управление окнами) всегда имеют приоритет над ярлыками команд расширения и не могут быть перезаписаны». Https://developer.chrome.com/extensions/commands - он работает, когда я использую другой ключ. – MrColes

+0

@MrColes Да, вы абсолютно правы. «Ваш собственный ярлык должен отличаться от стандартных по умолчанию (предварительно определенных) хром»! :пальцы вверх – narainsagar

Смежные вопросы