Exemples de communication intra-domaine et inter-domaine entre l'enfant iframe et la page parent

一个新手
Libérer: 2023-03-15 21:38:02
original
2574 Les gens l'ont consulté

La communication entre la sous-page iframe et la page parent a été étudiée en profondeur depuis longtemps. Je n'ai jamais utilisé ce contenu auparavant, donc je ne l'ai pas étudié Aujourd'hui, j'ai soudainement rencontré une question, alors je lui ai posé une question. essayez. Les utilisations de communication inter-domaines de Le code source de messager.js fourni par l'équipe Tencent est également très simple et mérite le détour. La démo officielle est très complète. Je donne juste un exemple simple ici.

Communication intra-domaine

Page parent

<!DOCTYPE html><html><head><title>iframe子页面与父页面通信(同域)</title><meta charset="utf-8"><script type="text/javascript">
    function sayHello(){
        alert("iframeCommunication1.html");
    }    function say(){
        child1.window.sayHello();
        child1.window.document.getElementById("button_c").value = "the call is complete";
    }</script></head><body><h1>iframe子页面与父页面同域通信</h1>调用子页面child1.html中的sayHello()函数:<input type="button" id="button_p" name="hello" value="call" onclick="say()"><br><br><iframe src="child1.html" id="child1"></iframe></body></html>
Copier après la connexion

Page enfant

<!DOCTYPE html><html><head><title>iframe子页面与父页面通信(同域)</title><meta charset="utf-8"><script type="text/javascript">
    function sayHello(){
        alert("child.html");
    }    function say(){
        parent.sayHello();
        parent.window.document.getElementById("button_p").value = "the call is complete";
    }</script></head><body><p>调用父页面iframeCommunication1.html中的sayHello()函数:</p><input type="button" id="button_c" name="hello" value="call" onclick="say()"></body></html>
Copier après la connexion

Communication inter-domaines

Pour IE8+ et un serveur de navigation moderne, la communication inter-domaines utilise principalement l'API postMessage fournie par html5 pour réaliser la communication inter-domaine. La fonction de postMessage est de permettre aux programmeurs d'envoyer des informations de données entre deux fenêtres/frames à travers des domaines. Fondamentalement, c'est comme AJAX inter-domaines, mais au lieu d'interagir entre le navigateur et le serveur, il communique entre deux clients.
Pour les navigateurs plus anciens, Messenger.js utilise la fonctionnalité selon laquelle l'objet navigateur est partagé entre la fenêtre parent et l'iframe. La fonction de rappel de message est enregistrée sur l'objet navigateur pour implémenter le transfert et le partage d'informations.
Un exemple très simple est donné ci-dessous :

Page parent

<!DOCTYPE html><html><head><title>iframe子页面与父页面通信(跨域)</title><meta charset="utf-8"><script src="js/messenger.js"></script></head><body><h1>iframe子页面与父页面跨域通信</h1>向子页面child2.html发送信息:<input type="button" id="button_p" value="call" onclick="sendMessage(&#39;child2&#39;)"><br><br>获取信息:<pre id="output">


Copier après la connexion

Sous page

<!DOCTYPE html><html><head><title>iframe子页面与父页面通信(跨域)</title><meta charset="utf-8"><script src="js/messenger.js"></script></head><body><h1>child2</h1>向父页面iframeCommunication2.html发送信息:<br><input type="button" id="button_p" value="call" onclick="sendMessage(&#39;parent&#39;)"><br><br>获取信息:<pre id="output">


Copier après la connexion

Référence

[1] js La page enfant iframe communique avec la page parent
[2] Solution universelle pour la communication inter-domaines iframe - Partie 2 (Solution ultime) | Tencent AlloyTeam
[3] Page d'accueil du projet Messengerjsi

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal