En raison des limites des politiques homologues, la communication entre le domaine a toujours été un problème difficile. Bien sûr, il existe de nombreuses solutions:
1. Les paramètres du document.domain + iframe sont appliqués au domaine principal et le sous-domaine sont différents;
2. En utilisant iframe et location.hash, les données sont directement exposées à l'URL, et la capacité et le type des données sont limités.
3.Flash localConnection, les objets peuvent communiquer dans un fichier SWF ou entre plusieurs fichiers SWF, tant que
Soyez simplement sur le même client, les applications transversales et le même domaine.
Window.name enregistre les données et le schéma de transmission dynamique de proxy statique IFRAMINE IFRAMINE, utilise entièrement la fonctionnalité de Window.Name qui ne change pas en raison des modifications de l'URL de la page.
Il existe de nombreux exemples de codes sur Internet, vous pouvez les rechercher vous-même.
L'une des API les plus cool de HTML5: Cross Document Messaging. Advanced Browsers Internet Explorer 8+, Chrome, Firefox, Opera et Safari prendront tous en charge cette fonctionnalité. Cette fonction est également très simple à implémenter, y compris principalement l'événement "Message" qui accepte les informations et la méthode "postmessage" qui envoie des messages.
La méthode "postmessage" pour envoyer un message
Envoyez un message à la fenêtre extérieure:
La copie de code est la suivante: alternativewindow.PostMessage (message, cibleRigin);
AUTRIEUX: se réfère à la fenêtre cible, c'est-à-dire à quelle fenêtre est envoyée, c'est un membre de l'attribut Window.frames ou une fenêtre créée par la méthode Window.Open
Description du paramètre:
1.Message: c'est le message à envoyer, le type est une chaîne, un objet (non pris en charge par IE8, 9)
2.Targetorigin: Il s'agit d'une plage de réception de messages limitée, et vous ne le limitez pas.
Événement "Message" qui accepte les informations
La copie de code est la suivante:
var onMessage = fonction (événement) {
var data = event.data;
var origine = event.origin;
// fait un peu
};
if (typeof window.addeventListener! = 'undefined') {
window.addeventListener ('message', onMessage, false);
} else if (typeof window.attachevent! = 'undefined') {
// pour IE
Window.Attachevent («OnMessage», OnMessage);
}
Le premier paramètre de la fonction de rappel reçoit l'objet de l'événement et possède trois propriétés communes:
1.Data: message
2.Origin: adresse source
3.Source: objet Source Domwindow
Bien sûr, le post-message a également quelques lacunes:
1. Les valeurs de type de données sont passées sous les types de chaînes IE8 et IE9, mais vous pouvez utiliser la conversion mutuelle entre les objets JSON et les chaînes pour résoudre ce problème;
2.IE6, IE7 doit rédiger un plan de compatibilité.