Saltar al contenido

Comunicación Javascript entre pestañas / ventanas del navegador

Solución:

Para obtener una solución más moderna, consulte https://stackoverflow.com/a/12514384/270274

Cita:

Me apego a la solución de datos locales compartidos mencionada en la pregunta usando localStorage. Parece ser la mejor solución en términos de confiabilidad, rendimiento y compatibilidad del navegador.

localStorage se implementa en todos los navegadores modernos.

los storage evento se dispara cuando otro pestañas realiza cambios en localStorage. Esto es bastante útil para fines de comunicación.

Referencia:
http://dev.w3.org/html5/webstorage/
http://dev.w3.org/html5/webstorage/#the-storage-event

Esta es una respuesta antigua, sugiero usar la versión moderna que se describe aquí:

Javascript; comunicación entre pestañas / ventanas con el mismo origen


Puede comunicarse entre las ventanas del navegador (y también las pestañas) mediante cookies.

A continuación, se muestra un ejemplo de remitente y receptor:

sender.html

<h1>Sender</h1>

<p>Type into the text box below and watch the text 
   appear automatically in the receiver.</p>

<form name="sender">
<input type="text" name="message" size="30" value="">
<input type="reset" value="Clean">
</form>

<script type="text/javascript"><!--
function setCookie(value) {
    document.cookie = "cookie-msg-test=" + value + "; path=/";
    return true;
}
function updateMessage() {
    var t = document.forms['sender'].elements['message'];
    setCookie(t.value);
    setTimeout(updateMessage, 100);
}
updateMessage();
//--></script>

receptor.html:

<h1>Receiver</h1>

<p>Watch the text appear in the text box below as you type it in the sender.</p>

<form name="receiver">
<input type="text" name="message" size="30" value="" readonly disabled>
</form>

<script type="text/javascript"><!--
function getCookie() {
    var cname = "cookie-msg-test=";
    var ca = document.cookie.split(';');
    for (var i=0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(cname) == 0) {
            return c.substring(cname.length, c.length);
        }
    }
    return null;
}
function updateMessage() {
    var text = getCookie();
    document.forms['receiver'].elements['message'].value = text;
    setTimeout(updateMessage, 100);
}
updateMessage();
//--></script>

No creo que necesites galletas. El código js de cada documento puede acceder a los demás elementos del documento. Entonces puedes usarlos directamente para compartir datos. Su primera ventana w1 abre w2 y guarda la referencia

var w2 = window.open(...) 

En w2 puede acceder a w1 usando la propiedad abridor de window.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *