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>
Page principale (exemple.com) :
<script> window.onmessage = function(event) { alert(event.data); }; </script> <!-- Trigger the message sending --> <iframe>
document.getElementById('myframe').contentWindow.postMessage('', '*');
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!