Migrating chrome extension to web extension
He estado migrando mi extensión de Chrome a la extensión web. El enlace de la extensión de Chrome esaqu
Todo funcionó excepto que necesito información de pestañas dentro de mi aplicación angular, allí recibo un error comoTypeError: "browser.tabs is undefined"
Puedo acceder a la información de la pestaña dentro de la secuencia de comandos de fondo y puedo enviarla a la secuencia de comandos de contenido, pero no a la aplicación principal.
Mi aplicación se abre en iframe, iframe apunta a la aplicación angular.
browser.tabs.getCurrent(function (tabs) {
//these are tabs
});
Pude obtenerlo en la extensión de Chrome, no puedo encontrar una manera de enviarlo desde el fondo o el contenido a la aplicación principal.
Lo obtengo en segundo plano y lo envío a contenido
BACKGROUND.js
browser.tabs.query({ currentWindow: true, active: true }, function (tabs) {
tabs = tabs
chrome.tabs.sendMessage(tabs[0].id, { action: "tabs", tabs : tabs }, function(response) {
console.log(response);
});
});
Obtener contenido como
CONTENT.JS
browser.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (request.action == 'tabs') {
tabs = request.tabs;
}
if (request.action == 'get_tabs') {
sendResponse(tabs);
}
});
También estoy tratando de obtenerlo en la aplicación principal enviando un mensaje y una respuesta como enget_tabs
En la aplicación principal en alguna parte
browser.runtime.sendMessage({ 'action': 'get_tabs' }, function (tabs) {});
Si te has enfrentado a esto, responde.