Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

104
Visualizações
Cambio de comando de extensión de Chrome

Estoy escribiendo una extensión de Chrome simple que intercepta eventos clave de medios e interactúa con un sitio web.

Lo tengo configurado para que la extensión se pueda activar y desactivar haciendo clic en ella. Mientras está activado, supervisa una pestaña y le envía eventos cuando se presionan las teclas multimedia. Cuando está apagado, aún intercepta las pulsaciones de las teclas multimedia, pero no hace nada con ellas.

Mi problema es que quiero dejar de interceptar las pulsaciones de teclas de medios cuando la extensión está "apagada". Me gustaría que Chrome utilice las teclas de medios como lo haría normalmente si mi extensión no estuviera instalada. Supongo que hay una forma de dejar de interceptar las pulsaciones de teclas o de reenviarlas a Chrome, pero no sé cómo.

Actualmente estoy usando el manifiesto para interceptar las pulsaciones de teclas con este código:

 { .... a bunch of stuff ... "manifest_version": 3, "background": { "service_worker": "background.js" }, "commands": { "playPause": { "suggested_key": { "default": "MediaPlayPause" }, "global": true, "description": "Toggle play/pause" }, "playNext": { "suggested_key": { "default": "MediaNextTrack" }, "global": true, "description": "Play next track" }, "playPrev": { "suggested_key": { "default": "MediaPrevTrack" }, "global": true, "description": "Play previous track" } } }

Entonces estoy capturando las pulsaciones de teclas con esto:

 function commandFired(command) { chrome.storage.local.get('activeTabId', result => { if (result.activeTabId == -1) { //send to chrome normally here return; } switch (command) { case "playNext": //Handling next break; case "playPrev": //Handling prev break; case "playPause": //Handling play break; } }); } chrome.commands.onCommand.addListener(commandFired);
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Chrome no tiene una API para deshabilitar las teclas de acceso rápido mediante programación, por lo que tendrá que cancelar el registro de todo el trabajador del servicio y ofrecer un botón en la ventana emergente para volver a registrarlo.

manifiesto.json:

 "action": {"default_popup": "popup.html"},

ventana emergente.html:

 <label><input type=checkbox id=power>Enabled</label> <script src=popup.js></script>

ventana emergente.js:

 Object.assign(document.getElementById('power'), { checked: !!navigator.serviceWorker.controller, async onchange() { if (this.checked) { const bg = chrome.runtime.getManifest().background; await navigator.serviceWorker.register(bg.service_worker, {type: bg.type}); } else { (await navigator.serviceWorker.getRegistration())?.unregister(); } }, });

En caso de que quiera seguir escuchando otros eventos de chrome , registre un archivo bg2.js diferente después de cancelar el registro del principal. El bg.js principal puede importar bg2.js para deduplicar el código, más información .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda