Maison > interface Web > js tutoriel > Comment puis-je accéder au contenu d'un iFrame à partir d'un autre domaine ?

Comment puis-je accéder au contenu d'un iFrame à partir d'un autre domaine ?

DDD
Libérer: 2024-12-23 15:04:14
original
202 Les gens l'ont consulté

How Can I Access an iFrame's Content from a Different Domain?

Accès iFrame inter-domaines : une solution

Lorsque vous tentez d'accéder au contenu d'un iFrame à partir d'un domaine différent, vous pouvez rencontrer un Erreur « Autorisation refusée pour accéder à la propriété ». Ce problème est dû à la politique inter-domaines du navigateur, qui restreint l'échange de données entre domaines pour des raisons de sécurité.

Pour surmonter cette limitation, vous pouvez utiliser la méthode postMessage, disponible si vous contrôlez à la fois le site de cadrage et le contenu de l'iFrame. Cette méthode permet d'envoyer et de recevoir des messages entre les différents domaines.

Voici un exemple de mise en œuvre :

Site encadré (iframe.net) :

<script>
  window.onmessage = function(event) {
    event.source.postMessage(document.body.innerHTML, event.origin);
  };
</script>
Copier après la connexion

Page principale (exemple.com) :

<script>
  window.onmessage = function(event) {
    alert(event.data);
  };
</script>

<!-- Trigger the message sending -->
<iframe>
Copier après la connexion
document.getElementById('myframe').contentWindow.postMessage('', '*');
Copier après la connexion

La méthode postMessage prend deux arguments : le message à envoyer et l'origine cible (le domaine pour recevoir le message). Dans cet exemple, nous utilisons '*' pour indiquer que le message peut être reçu par n'importe quel domaine.

Lorsque ce code est exécuté, le message contenant le corps de l'iFrame est envoyé du site encadré vers le site principal page, où il est affiché dans une boîte d'alerte. Cela montre comment contourner la politique inter-domaines et échanger des données entre les deux domaines à l'aide de la méthode postMessage.

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!

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