Uso una extensión en Chrome (Bulk URL Opener). Esta extensión abre múltiples enlaces en un intervalo de segundos. También abre una nueva pestaña ( x1 ) que tiene botones de reproducción y pausa. Al presionar el botón de reproducción, la extensión comienza a abrir nuevas pestañas a la derecha y sigue abriendo. Al presionar el botón de pausa, detiene la apertura de una nueva pestaña.
Lo que quiero que haga AutoHotkey aquí es leer la cantidad de pestañas abiertas en Chrome. Si hay menos de 10 pestañas, entonces quiero que AutoHotkey dé entrada a la pestaña x1 y comience la apertura de la nueva pestaña. Además, si el número de pestañas abiertas es más de 12, entonces quiero que AutoHotkey ingrese nuevamente a la pestaña x1 y detenga la apertura de una nueva pestaña.
Básicamente, solo quiero que se abran 10 o 12 pestañas en Chrome a la vez y si cierro una o dos pestañas, quiero que se abra una nueva pestaña automáticamente. ¿Hay alguna manera de que pueda lograr esto?
Lea esta fuente: https://dev.to/dcodeyt/send-data- between -tabs-with-javascript-2oa
La inicialización de un canal ocurre así:
const channel = new BroadcastChannel("my-channel");Así es como puedes recibir un mensaje:
channel.addEventListener("message", e => { console.log(e.data); });Así es como puedes publicar un mensaje
channel.postMessage("Hello world");Ahora, sabiendo todo esto, veamos el
Si abre pestañas, abrirá alguna URL para cada una de ellas. Suponiendo que tiene el control del código fuente de las páginas que abre, puede hacer lo siguiente:
message tanto en su pestaña principal como en las pestañas abiertasEjemplo
const channel = new BroadcastChannel("my-channel"); channel.addEventListener("message", e => { if (e.data === "ping") channel.postMessage("pong"); }); var pongCount = 0; var pongLimit = 12; const channel = new BroadcastChannel("my-channel"); channel.addEventListener("message", e => { if (e.data === "pong") pongCount++; }); setInterval(function() { pongCount = 0; channel.postMessage("ping"); setTimeout(function() { for (let pongIndex = pongCount + 1; pongIndex < pongLimit; pongIndex++) { //open a tab } }, 100); }, 1000);Tenga en cuenta que el código de verificación debe estar en la pestaña principal
EDITAR
Parece que no hay acceso a las páginas que se están cargando. Si ese es el caso, se puede implementar una aplicación proxy que transmitirá la solicitud a las páginas de destino para eludir las restricciones de Chrome y tener páginas contenedoras a las que tenga acceso completo en términos de código fuente y, por lo tanto, que pueda enviar y recibir mensajes. .
Alternativamente, se puede usar la extensión chrome.tabs, como
chrome.tabs.query({windowType:'normal'}, function(tabs) { console.log('Number of open tabs in all normal browser windows:',tabs.length); });Pero para ese propósito, será necesario instalar la extensión dada: https://developer.chrome.com/docs/extensions/reference/tabs/