Desde dentro de una extensión de Chrome, ¿hay alguna forma de ejecutar un script en otra extensión abierta? Solo quiero hacer clic en un botón específico cada vez que se abre una extensión diferente.
Intenté usar las API de secuencias de comandos de Chrome :
chrome.scripting.executeScript({ target: { tabId: tab.id }, // tab id relative the other open extension function: injectIntoAnotherExtension }); function injectIntoAnotherExtension() { document.getElementById('some-button').click(); }Al principio me salió el error:
Error: Cannot access a chrome-extension:// URL of different extension Después de habilitar Extensiones en chrome:// indicador de URL ( chrome://flags/#extensions-on-chrome-urls ), ahora obtengo:
Error: Cannot access contents of url "chrome-extension://foo/bar/xyz.html". Extension manifest must request permission to access this host.Aquí están mis permisos de manifiesto, que deberían permitir todas las direcciones URL:
"host_permissions": [ "<all-urls>" ] También probé con *://*/* o chrome-extensions://*/* pero sin éxito.
Preguntas relacionadas: esto y esto .
¿Alguna forma de evitarlo? ¿O hay alguna otra forma de hacer clic automáticamente en un botón en otra extensión en ejecución?
¡Gracias!
Gracias a @wOxxOm , lo hice funcionar con:
chrome.debugger.attach({ tabId: tab.id }, '1.0', function() { chrome.debugger.sendCommand({ tabId: tab.id }, "Runtime.evaluate", { expression: "document.getElementById('some-button').click();" }, function(response) { console.log(response); }); });