Debido a las limitaciones de las políticas homólogas, la comunicación entre dominios siempre ha sido un problema difícil. Por supuesto que hay muchas soluciones:
1. La configuración del documento. Domain+iframe se aplican al dominio principal y el subdominio son diferentes;
2. Usando iframe y ubicación. Hash, los datos están directamente expuestos a la URL, y la capacidad y el tipo de datos son limitados.
3.Flash LocalConnection, los objetos pueden comunicarse en un archivo SWF o entre múltiples archivos SWF, siempre que
Solo esté en el mismo cliente, aplicaciones cruzadas y dominio cruzado.
Window.Name guarda datos y un esquema de transmisión dinámica de proxy de dominio de dominio cruzado, utiliza completamente la característica de la ventana. Nombre que no cambia debido a los cambios de URL de la página.
Hay muchos códigos de ejemplo en Internet, puede buscarlos usted mismo.
Una de las mejores API en HTML5: Mensajes de documentos cruzados. Los navegadores avanzados Internet Explorer 8+, Chrome, Firefox, Opera y Safari admitirán esta función. Esta función también es muy simple de implementar, principalmente incluyendo el evento "Mensaje" que acepta información y el método "PostMessage" que envía mensajes.
El método "postmessage" para enviar un mensaje
Envíe un mensaje a la ventana exterior:
La copia del código es la siguiente: OTROWINDOW.POSTMESSAGE (Mensaje, Targetorigin);
OTRO OTRO: se refiere a la ventana de destino, es decir, a qué ventana se envía, es un miembro del atributo Window.frames o una ventana creada por la ventana.
Descripción del parámetro:
1.Message: es el mensaje que se enviará, el tipo es cadena, objeto (no compatible con IE8, 9)
2.Targetorigin: es un rango de recepción de mensajes limitados, y no lo restringe.
Evento de "mensaje" que acepta información
La copia del código es la siguiente:
var onMessage = function (evento) {
var data = event.data;
var origen = event.origin;
// Haz algo
};
if (typeof window.adDeventListener! = 'Undefined') {
Window.AdDeventListener ('Mensaje', OnMessage, False);
} else if (typeof window.attachevent! = 'undefined') {
// para IE
Window.attachevent ('onMessage', onMessage);
}
El primer parámetro de la función de devolución de llamada recibe el objeto de evento y tiene tres propiedades comunes:
1. Data: mensaje
2. Origin: dirección fuente
3. Fuente: Fuente Domwindow Object
Por supuesto, el postmessage también tiene algunas deficiencias:
1. Los valores de tipo de datos pasados en los tipos de cadenas de soporte IE8 e IE9, pero puede usar la conversión mutua entre los objetos JSON y las cadenas para resolver este problema;
2.IE6, IE7 necesita escribir un plan de compatibilidad.