Estoy creando mi primera extensión que busca en un sitio, Craigslist, por ejemplo, página por página (con un retraso de aproximadamente 5 segundos entre pasar a la página siguiente) buscando ciertos títulos/texto, etc.
Cuando enciendo mi extensión y la pestaña está en la URL correcta, comienza a ir de página en página como se esperaba. El problema es cuando abro una nueva pestaña, si estoy mirando la nueva pestaña en el momento en que se carga la página siguiente para mi extensión (en una pestaña diferente), carga la página siguiente en cualquier pestaña en la que me concentre. en ese momento.
Quiero que la extensión tome la identificación de la pestaña que estoy viendo en el momento en que presiono habilitar en mi extensión, luego solo actualice esa pestaña en el futuro si todavía está abierta. Entonces, tal vez, si esa pestaña se cierra, la extensión cambia para deshabilitarse automáticamente.
Yo suelo:
var myNewUrl = "https://example-site-url.com/?page=" + slice; //slice is the page number chrome.tabs.update ({url: myNewUrl});para actualizar la URL, que funciona bien.
Aquí está mi opción/botón de habilitación que uso en background.js
chrome.runtime.onMessage.addListener(end => { myButton = () => { enabled = !enabled; myButton.textContent = enabled ? 'Disable' : 'Enable'; chrome.storage.local.set({enabled:enabled}); }; });La activación/desactivación también funciona como se esperaba.
Cuando lo configuro como habilitado, ¿puedo tomar la identificación de la pestaña allí en esa función? Luego llámelo en chrome.tabs.update ({url: myNewUrl}); ?
Tengo lo siguiente en mi archivo de manifiesto que creo que es necesario:
"permissions": [ "activeTab", "tabs",Revisé la documentación de Chrome Tabs ( https://developer.chrome.com/docs/extensions/reference/tabs/ ) y principalmente no lo entiendo. Intenté usar el código Obtener la pestaña actual para devolver la pestaña sin éxito. Todos mis intentos bloquean la extensión y no avanza en absoluto.
Todo mi background.js
chrome.runtime.onMessage.addListener(slice => { var myNewUrl = "https://example-site.com/?page=" + slice; chrome.tabs.update ({url: myNewUrl}); }); chrome.runtime.onMessage.addListener(end => { myButton = () => { enabled = !enabled; myButton.textContent = enabled ? 'Disable' : 'Enable'; chrome.storage.local.set({enabled:enabled}); }; });Casi todo el resto de mi código está en content-script.js, lo que parece que no es correcto por lo que estoy leyendo en otros lugares.
Allí, en el script de contenido, la mayor parte de mi código está debajo de esto, que está controlado por el botón habilitar/deshabilitar:
chrome.storage.local.get("enabled", (data) => { if (data.enabled) {