23 mayo, 2008

API para postMessage

John Resig anuncia cambios para la API de postMessage, que permite enviar mensajes de texto entre marcos o ventanas pertenecientes a dominios distintos de forma segura. Forma parte de la especificación HTML5 y estará disponible para Internet Explorer 8, Firefox 3, Safari/WebKit y Opera 9.5. Sobre Firefox 3 RC1 ya funciona correctamente tal y como se puede comprobar aquí.

El código del documento exterior albergado en http://ejohn.org/apps/message/ y que emite el mensaje sería:

<iframe id='iframe' src='http://dev.jquery.com/~john/message/'/>
<form id='form'>
  <input value='Mensaje a enviar' id='msg' type='text'/>
  <input type='enviar'/>
</form>
<script>
window.onload = function(){
        var win = document.getElementById("iframe").contentWindow;
        document.getElementById("form").onsubmit = function(e){
                win.postMessage(
                        document.getElementById("msg").value,
                        "http://dev.jquery.com"
                );
                e.preventDefault();
        };
};
</script>
Y el código del iframe interior que estaría albergado en http://dev.jquery.com/~john/message/ y que recibe el mensaje sería:

<b>Este iframe estaría en dev.jquery.com</b>
<div id='test'>Enviame un mensaje!</div>
<script>
window.addEventListener("message", function(e){
        if ( e.origin !== "http://ejohn.org" )
                return;

        document.getElementById("test").textContent = e.origin + " said: " + e.data;
}, false);
</script>

Publicar un comentario en la entrada

Últimos links en indiza.com