La méthode de communication est différente selon que l'attribut SRC dans l'IFRAME est lié au même domaine ou à la même liaison dans le domaine.
1. Communication entre le père et les pages de fils dans le même domaine
Parent Page Parent.html
La copie de code est la suivante:
<html>
<adal>
<script type = "text / javascript">
fonction dit () {
alert ("parent.html");
}
fonction callchild () {
myFrame.window.say ();
MyFrame.Window.Document.getElementById ("Button"). Value = "Call End";
}
</cript>
</ head>
<body>
<entrée id = "bouton" type = "bouton" value = "Appelez la fonction dans child.html says ()" onclick = "callchild ()" />
<iframe name = "myFrame" src = "child.html"> </ iframe>
</docy>
</html>
child.html
La copie de code est la suivante:
<html>
<adal>
<script type = "text / javascript">
fonction dit () {
alert ("child.html");
}
fonction callparent () {
parent.say ();
parent.window.Document.getElementById ("Button"). Value = "Call End";
}
</cript>
</ head>
<body>
<entrée id = "bouton" type = "bouton" value = "Appelez la fonction Say () dans parent.html" onclick = "callparent ()" />
</docy>
</html>
Appel de méthode
La page parent appelle la méthode de la page de l'enfant: FrameName.Window.ChildMethod ();
La page de l'enfant appelle la méthode de la page parent: parent.window.parentMethod ();
Accès à l'élément DOM
Après avoir obtenu l'objet Window.Document de la page, vous pouvez accéder à l'élément DOM.
Choses à noter
Pour s'assurer que l'opération est effectuée après le chargement de l'IFRAME, si l'IFRAME n'a pas encore été chargé, commencez à appeler les méthodes ou les variables à l'intérieur, une erreur se produira. Il existe deux façons de déterminer si un iframe se charge:
1. Utilisez l'événement Onload sur iframe
2. Utilisez le document.readystate == "Complete" pour juger
2. Méthode de communication de la page parent-fils inter-domaine
Si l'IFRAME relie une page externe, la méthode de communication sous le même nom de domaine ne peut pas être utilisée car le mécanisme de sécurité n'est pas utilisé.
La page parent transmet des données aux pages enfants
La technique de mise en œuvre consiste à utiliser la valeur de hachage de l'objet de localisation et à passer les données de communication via l'informatique. Ajoutez une chaîne de données supplémentaire après le SRC de l'Iframe sur la page parent, puis d'une manière ou d'une autre, vous pouvez obtenir les données ici instantanément, par exemple:
1. Définissez la minuterie dans la sous-page via la méthode SetInterval, écoutez les modifications de l'emplacement.href pour obtenir les informations de données ci-dessus
2. Ensuite, le sous-page effectue un traitement logique correspondant basé sur ces informations de données.
La page de l'enfant transmet des données à la page parent
La technique d'implémentation consiste à utiliser un iframe proxy, qui est intégré dans la page enfant et doit rester dans le même domaine que la page parent. Ensuite, à travers elle, il utilise pleinement le principe de mise en œuvre de la première méthode de communication ci-dessus, transmet les données de la page de l'enfant à l'IFRAME PROXY. Ensuite, puisque l'IFRAME PROXY et la page principale sont dans le même domaine, la page principale peut obtenir ces données en utilisant le même domaine. Utilisez Window.top ou Window.parent.parent pour obtenir une référence à l'objet de fenêtre de niveau supérieur du navigateur.