Surveiller l'événement message de l'objet fenêtre
window .addEventListener("message", function(event) {
// handler code
}, false);
Utilisez la méthode postMessage() de l'objet window pour envoyer des messages vers d'autres fenêtres, la méthode est définie comme suit :
otherwindow. postMessage(message, targetOrigin);
Cette méthode utilise deux paramètres : le premier paramètre est le texte du message envoyé, mais il peut également s'agir de n'importe quel JavaScript. object (conversion de l'objet en texte via JSON); Le deuxième paramètre est l'adresse URL de la fenêtre de l'objet qui reçoit le message. Vous pouvez utiliser le caractère générique "*" dans la chaîne d'adresse URL pour spécifier toutes les adresses, mais il est recommandé de le faire. utilisez une adresse URL précise. otherwindow consiste à envoyer une référence à l'objet window. Vous pouvez renvoyer l'objet via la méthode window.open(), ou renvoyer l'objet window attribué à un seul cadre en spécifiant le numéro de série (index) ou le nom dans window.frames. tableau.
Exemple
< !DOCTYPE html> ;
Exemple de message maître titre>
script type ="text/javascript">
$(function() {
// Écoutez les événements de message.
window.addEventListener("message", function(event) {
// Ignorer le message URL spécifié envoyé depuis d'autres pages.
if(event.origin != "http://www.blue-butterfly.net") return
alert(event.data); . 🎜>}, false);
$("#iframeContent").load(function(event) {
// Envoyer un message à la sous-page
this[0].postMessage("Bonjour" , " http://www.blue-butterfly.net/test/");
});
< body>
Exemple de communication interdomaine
sub Le code dans la page est le suivant :
Copiez le code
Voici le contenu de l'iframe.
Surveillez l'événement de message de l'objet fenêtre et recevez des messages.
•En accédant à l'attribut origin de l'événement message, vous pouvez obtenir la source d'envoi du message (dans cet exemple, la source d'envoi de la page principale est "http://Lulingniu", et la source d'envoi du la sous-page est "http://www.blue" -butterfly.net"). Remarque : La source d'envoi et l'adresse URL du site Web ne sont pas le même concept. La source d'envoi inclut uniquement le nom de domaine et le numéro de port. Afin d'éviter de recevoir des messages envoyés de manière malveillante par d'autres sources, il est préférable de vérifier la source d'envoi. .
• En accédant à l'attribut data de l'événement de message, vous pouvez obtenir le contenu du message (il peut s'agir de n'importe quel objet JavaScript, en utilisant JSON).
•Utilisez la méthode postMessage() pour envoyer des messages.
•En accédant à l'attribut source de l'événement message, vous pouvez obtenir l'objet proxy de la fenêtre à partir de laquelle le message est envoyé.