PostMessage es una nueva API de comunicación de origen cruzado introducida en html5 que permite comunicarte bidireccionalmente con la página principal y cualquier página de clase de marco o una página abierta mediante window.open. Su proceso general de funcionamiento es el siguiente:
El método postMessage(data,origin) acepta dos parámetros:
(1) datos: Los datos a pasar, la especificación HTML5 menciona que el parámetro puede ser cualquier tipo básico de JavaScript o un objeto reproducible, pero no todos los navegadores lo han hecho; algunos solo pueden manejar parámetros de cadena, por lo que necesitamos usar el método JSON.stringify() para serializar los parámetros del objeto al pasar los parámetros, y consultar json2.js en la versión inferior de IE para lograr efectos similares.
(2) origen: Parámetro de cadena, indica el origen de la ventana objetivo, protocolo + host + número de puerto [+URL], la URL será ignorada, por lo que no podrá escribirse, este parámetro es por razones de seguridad, el método postMessage() solo pasará el mensaje a la ventana especificada, por supuesto, si quieres, también puedes poner el parámetro en "*", para que pueda pasarse a cualquier ventana, si quieres especificar el mismo origen que la ventana actual, se establece en "/";
Envía y recibe mensajes tú mismo
El código es el siguiente:
La ventana padre envía un mensaje a la ventana hija, y la ventana hija recibe el mensaje
El código es el siguiente:
La ventana hija envía un mensaje a la ventana padre, y la ventana madre recibe el mensaje
El código es el siguiente:
Además, un modo simple de escuchador/cliente está conectado al cliente para la mensajería entre dominios en la siguiente dirección:El inicio de sesión del hipervínculo es visible.
(Fin)
|