Explication détaillée de l'utilisation du post-message
utilisation de postmessage
Un résumé de l'utilisation de PostMessage en html5
Tout le monde sait que le transfert de données entre des pages Web peut être effectué à l'aide de requêtes ajax. Aujourd'hui, je vais résumer comment le postMessage que j'ai appris répond aux requêtes de données inter-pages ? Tout d'abord, postMessage est une nouvelle méthode HTML5 pour résoudre les problèmes inter-domaines. Alors comment l’utilise-t-il ? Ici, je vais partager un cas.
Tutoriels vidéo associés recommandés : Tutoriel vidéo HTML
Regardez le code suivant :
test.html
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> </head> <body> </body> <script> onmessage=function(e){ e=e||event; document.write("my name is ",e.data); document.body.style.background = 'red'; }; </script> </html>
1. html
<!DOCTYPE html> <html> <head> <title>window.postMessage</title> <meta charset="utf-8"/> <h1>test接收区</h1> </head> <body> </body> <iframe id="f" src="http://localhost:8080/chajian/test.html"></iframe> <script> var f=document.getElementById("f"); //给框架网页发送消息,然后收到之后,会传送过来。 f.οnlοad=function(){ setTimeout(function(){ f.contentWindow.postMessage("谢霆锋","http://localhost:8080"); },3000) } </script> </html>
Tout d'abord, le principe est le suivant. Permettez-moi de prendre mon code de cas comme exemple.
1.html est intégré à un framework de page Web iframe, où il transmet les données. Une fois 1.html chargé, il l'enverra activement à test.html Nicholas Tse, puis test.html le fera. être reçu , qui contient une fonction de traitement pour recevoir des messages, après avoir reçu le message, il renvoie immédiatement une chaîne à la page Web, puis change son arrière-plan en rouge. Cela permet d'obtenir l'effet d'interaction avec une page Web. Malheureusement, le maléfique IE6.7 ne le prend pas en charge et la compatibilité n'est pas élevée.
Remarque : lors de l'écriture de postMessage, ce qui est écrit avant postMessage est l'objet window avec lequel vous souhaitez communiquer (c'est-à-dire avec qui vous souhaitez communiquer. À ce stade, les autorisations de window.parent sont limitées). à cela, et ne peut pas être dans le même domaine que De même, récupérez l'élément DOM parent, sinon le navigateur signalera une erreur, vous indiquant que vous ne pouvez pas effectuer d'accès inter-domaine. Regardons les paramètres reçus dans postMessage Le premier paramètre. sont les données que vous souhaitez transmettre à une autre fenêtre (seul le type de chaîne peut être transmis). Le deuxième paramètre représente la source de la fenêtre cible, protocole + hôte + numéro de port, pour des raisons de sécurité. qu'il peut être transmis à n'importe quelle fenêtre.
Ce qui précède est une interaction sur une seule page, et ce qui suit est une interaction sur deux pages. En fait, ce sont les mêmes, mais les deux pages sont écrites pour écouter l'envoi d'événements.
test.html
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"/> </head> <body> <h1 class="header">page B</h1> <input type="text" id="inp" value="我想你"> <button οnclick="send()">send</button> </body> <script> window.addEventListener('message', function(ev) { // if (ev.source !== window.parent) {return;} var data = ev.data; document.write("my name is ",data); document.body.style.background = 'red'; }, false); function send() { var data = document.querySelector('#inp').value; parent.postMessage(data, 'http://localhost:8080/'); // 若父页面的域名和指定的不一致,则postMessage失败 // parent.postMessage(data, '*'); // 触发父页面的message事件 } </script> </html>
1.html
<!DOCTYPE html> <html> <head> <title>window.postMessage</title> <meta charset="utf-8"/> <h1>test接收区</h1> </head> <body> <h1 class="header">page A</h1> <div class="mb20"> <textarea name="ta" id="data" cols="30" rows="5">hello world</textarea> <button style="font-size:20px;" οnclick="send()">post message</button> </div> <!-- 跨域的情况 --> <iframe src="http://localhost:8080/chajian/test.html" id="child" style="display: block; border: 1px dashed #ccc; height: 300px;"></iframe> <script> function send() { var data = document.querySelector('#data').value; window.frames[0].postMessage(data, 'http://localhost:8080/'); // 触发跨域子页面的messag事件 } window.addEventListener('message', function(messageEvent) { var data = messageEvent.data; console.info('message from child:', data); document.write("收到了数据: ",data); document.body.style.background = 'red'; }, false); </script> </body> </html>
De même, 1.html est la page principale. Ouvrez le HTML et vous pourrez interagir.
Pour plus d'apprentissage lié à la programmation, veuillez prêter attention à la chaîne de didacticiels vidéo Introduction à la programmation du site Web PHP chinois !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite du HTML & lt; Progress & GT; élément, son but, son style et ses différences par rapport au & lt; mètre & gt; élément. L'objectif principal est de l'utiliser & lt; Progress & gt; pour l'achèvement des tâches et & lt; mètre & gt; pour stati

L'article examine les meilleures pratiques pour assurer la compatibilité des navigateurs de HTML5, en se concentrant sur la détection des fonctionnalités, l'amélioration progressive et les méthodes de test.

L'article traite du HTML & lt; Datalist & GT; élément, qui améliore les formulaires en fournissant des suggestions de saisie semi-automatique, en améliorant l'expérience utilisateur et en réduisant les erreurs. COMMANDE COMPRES: 159

L'article discute de l'utilisation des attributs de validation de formulaire HTML5 comme les limites requises, motifs, min, max et longueurs pour valider la saisie de l'utilisateur directement dans le navigateur.

L'article traite du HTML & lt; mètre & gt; élément, utilisé pour afficher des valeurs scalaires ou fractionnaires dans une plage, et ses applications courantes dans le développement Web. Il différencie & lt; mètre & gt; De & lt; Progress & gt; et ex

L'article traite de la balise Meta de la fenêtre, essentielle pour la conception Web réactive sur les appareils mobiles. Il explique comment une utilisation appropriée garantit une mise à l'échelle optimale du contenu et une interaction utilisateur, tandis que la mauvaise utilisation peut entraîner des problèmes de conception et d'accessibilité.

L'article traite du & lt; iframe & gt; L'objectif de Tag dans l'intégration du contenu externe dans les pages Web, ses utilisations courantes, ses risques de sécurité et ses alternatives telles que les balises d'objet et les API.

HTML convient aux débutants car il est simple et facile à apprendre et peut rapidement voir les résultats. 1) La courbe d'apprentissage de HTML est fluide et facile à démarrer. 2) Il suffit de maîtriser les balises de base pour commencer à créer des pages Web. 3) Flexibilité élevée et peut être utilisée en combinaison avec CSS et JavaScript. 4) Les ressources d'apprentissage riches et les outils modernes soutiennent le processus d'apprentissage.
