ventana pestaña chrome change cerrar actual javascript html5 cross-window-scripting

pestaña - cerrar ventana javascript chrome



Enviando un mensaje a todas las ventanas/pestañas abiertas usando JavaScript (3)

Esta pregunta ya tiene una respuesta aquí:

Escuché que HTML5 tiene window.postMessage() , pero parece que requiere tener un controlador en la ventana (o pestaña, a lo largo de esta pregunta) en la que está publicando el mensaje. ¿Qué pasa si quiero transmitir a todas las ventanas abiertas? es posible?

(Lo que estoy tratando de hacer es advertir a otras ventanas sin ningún tipo de redondeo al servidor cuando un usuario hace algo en una ventana que afecta a las otras, para que puedan actualizar su contenido. Sin embargo, mientras que algunas ventanas pueden abrirse desde las existentes - permitiéndome interceptar y almacenar referencias a ellas - el usuario puede abrir manualmente algunas ventanas nuevas y luego seleccionar un marcador o una URL introducida. En este caso, no parece haber una forma de interceptar y almacenar referencias .)


Escribí una biblioteca para hacer precisamente esto: intercom.js (por las mismas razones que describiste).

Actualmente lo estamos utilizando para transmitir notificaciones a todas las ventanas, por lo que solo una ventana necesita mantener una conexión de socket al servidor. Como algunos otros sugirieron, utiliza la API localStorage.

El uso es realmente simple:

var intercom = Intercom.getInstance(); $(''a'').on(''click'', function() { intercom.emit(''notice'', {message: ''Something just happened!''); });

Para captar el mensaje,

intercom.on(''notice'', function(notice) { console.log(notice.message); });

La interfaz está diseñada para imitar socket.io .


OMI, esto no es posible utilizando el mensaje de correo. ¿Qué hay de usar sessionStorage localStorage? Escribir en él debe generar un evento de almacenamiento que debe propagarse a todas las ventanas que comparten el mismo almacenamiento de sesión.