Pregunta

¿Es posible encontrar instancias extranjeras de cierto sitio web? Ofc Theese son pestañas abiertas de forma independiente (no por ventana. Necesito evitar que el usuario abra 2 pestañas y enviar un mensaje a la pestaña ABIERTA previamente para informar que es imposible abrir 2 pestañas. 2 Las pestañas intependientes pueden romper el almacenamiento fuera de línea de la página y la estructura WebSQL, para que no pueda permitir que las personas usen 2 pestañas. También es una aplicación semi-Offline, por lo que debe ser una solución del lado del cliente.

¿Fue útil?

Solución

Puede comunicarse a través de las pestañas usando LocalStorage. Cada vez que escribe un valor, se dispara un evento de "almacenamiento" en el objeto de la ventana en cada pestaña (excepto la actual).

http://diveintohtml5.info/storage.html

Desplácese hacia abajo hasta "Seguimiento de cambios en el área de almacenamiento HTML5"

El evento incluirá event.key, event.newValue, event.oldValue.

Esto solo funciona en los navegadores modernos.

Otros consejos

En 2021, puede usar el trabajador de servicios:

https://github.com/gyteng/service-worker-event

Aviso: el trabajador de servicio solo funciona en https protocolo

LocalStorage se puede usar para rastrear ventanas. Debe tener en cuenta una situación en la que se bloquea la ventana: dejará la basura en el almacenamiento local. Mutex puede realizar un recurso común desde varias ventanas simultáneamente mediante Mutex basado en LocalStorage.

Recientemente he publicado el Biblioteca de comunicación entre ventas (Todas las características se describen en ReadMe). Proporciona intercambio de datos a prueba de subprocesos, cerraduras de ventana cruzada y transmisión de eventos. También resuelve algunos problemas de IE.

El canal de transmisión es diseño para estohttps://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api

Pero la API nativa solo admite navegadores modernos. También hay un paquete NPM todos los navegadores antiguoshttps://www.npmjs.com/package/broadcast-channel

No tienes control sobre eso. El usuario puede hacer básicamente lo que él/ella quiera en la computadora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top