Maison >interface Web >Tutoriel H5 >Exemple de transmission de messages entre documents html5 discussion_html5 compétences du didacticiel

Exemple de transmission de messages entre documents html5 discussion_html5 compétences du didacticiel

WBOY
WBOYoriginal
2016-05-16 15:49:491365parcourir

Surveiller l'événement message de l'objet fenêtre

Copiez le code
Le code est le suivant :

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 :

Copier le code
Le code est le suivant :

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

Copier le code
Le code est le suivant :

< !DOCTYPE html> ;



Exemple de message maître</ titre> <br><script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script> script type ="text/javascript"> <br>$(function() { <br>// Écoutez les événements de message. <br>window.addEventListener("message", function(event) { <br>// Ignorer le message URL spécifié envoyé depuis d'autres pages. <br>if(event.origin != "http://www.blue-butterfly.net") return <br>alert(event.data); . 🎜>}, false); <br>$("#iframeContent").load(function(event) { <br>// Envoyer un message à la sous-page<br>this[0].postMessage("Bonjour" , " http://www.blue-butterfly.net/test/"); <br>}); <br></script> < body> <br><header> <br><h1>Exemple de communication interdomaine</h1> <br></header> <br><iframe id="iframeContent" width="400 " src ="http://www.blue-butterfly.net/test/"></iframe> <br></body> <br></html> <br><br><br>sub Le code dans la page est le suivant : <br><br><br> </div> <br><br> Copiez le code <br><div class="msgheader"> <div class="right">Le code est le suivant : <span style="CURSOR: pointer" onclick="copycode(getid('phpcode15'));"> <u> </u><! DOCTYPE html> </span><html> </div><head> "text/javascript" src="http ://code.jquery.com/jquery-1.6.4.min.js"></script> </div><script type="text/javascript"> <div class="msgborder" id="phpcode15">$(function() { <br>window.addEventListener("message", function(event) { <br>if(event.origin != "http://Lulingniu") return; <br>$( "#console").append(event .origin).append("Incoming message:").append(event.data); <br>//Envoyer un message à la page principale. <br>event.source.postMessage("Bonjour, il y a :" this.location, event.origin <br>}, <br>}); </head> <br><body> <br><p>Voici le contenu de l'iframe. </p> <br><div id="console"></div> <br></body> <br></html> Surveillez l'événement de message de l'objet fenêtre et recevez des messages. <br>•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. . <br>• 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). <br>•Utilisez la méthode postMessage() pour envoyer des messages. <br>•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é.</div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>Déclaration:</span><div>Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn</div></div></div><div class="nphpSytBox"><span>Article précédent:<a class="dBlack" title="html5 glisser-déposer télécharger un exemple d'image démonstration_html5 compétences du didacticiel" href="https://m.php.cn/fr/faq/6380.html">html5 glisser-déposer télécharger un exemple d'image démonstration_html5 compétences du didacticiel</a></span><span>Article suivant:<a class="dBlack" title="html5 glisser-déposer télécharger un exemple d'image démonstration_html5 compétences du didacticiel" href="https://m.php.cn/fr/faq/6384.html">html5 glisser-déposer télécharger un exemple d'image démonstration_html5 compétences du didacticiel</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>Articles Liés</h2><em><a href="https://m.php.cn/fr/article.html" class="bBlack"><i>Voir plus</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/fr/faq/348281.html" title="Le plug-in de défilement plein écran AlloyTouch crée une page H5 fluide en 30 secondes" class="aBlack">Le plug-in de défilement plein écran AlloyTouch crée une page H5 fluide en 30 secondes</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/fr/faq/348372.html" title="Combat réel HTML5 et analyse des événements tactiles (touchstart, touchmove et touchend)" class="aBlack">Combat réel HTML5 et analyse des événements tactiles (touchstart, touchmove et touchend)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/fr/faq/348373.html" title="Explication détaillée des exemples de dessin d'images dans le canevas HTML5 9" class="aBlack">Explication détaillée des exemples de dessin d'images dans le canevas HTML5 9</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/fr/faq/348374.html" title="Expressions régulières et nouveaux éléments HTML5" class="aBlack">Expressions régulières et nouveaux éléments HTML5</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/fr/faq/348469.html" title="Comment combiner NodeJS et HTML5 pour glisser-déposer plusieurs fichiers à télécharger sur le serveur" class="aBlack">Comment combiner NodeJS et HTML5 pour glisser-déposer plusieurs fichiers à télécharger sur le serveur</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!</p></div><div class="footermid"><a href="https://m.php.cn/fr/about/us.html">À propos de nous</a><a href="https://m.php.cn/fr/about/disclaimer.html">Clause de non-responsabilité</a><a href="https://m.php.cn/fr/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>