problème inter-domaines iframe
P粉939473759
P粉939473759 2023-08-24 09:35:29
0
2
512
<p>Supposons que j'ai un site Web appelé example.com avec une iframe intégrée dans le domaine iframe.net, je souhaite maintenant lire le contenu de l'iframe et transmettre certains paramètres pour afficher un message texte. J'aime utiliser le nom d'utilisateur Salut. </p> <p>Maintenant, le problème est que cela ne peut pas établir de connexion entre les deux ou même obtenir le HTML interne de l'iframe que j'utilise ci-dessous</p> <pre class="brush:php;toolbar:false;">document.getElementById('myframe').contentWindow.document.body.innerHTML;</pre> <p>L'erreur "L'autorisation d'accès à la propriété est refusée" est générée</p> <p>Est-ce que quelqu'un sait lire et écrire sur des plateformes inter-domaines</p>
P粉939473759
P粉939473759

répondre à tous(2)
P粉092778585

Dans Internet Explorer 8, les événements passés en paramètres peuvent être null, c'est pourquoi vous devez accéder aux événements différemment :

Dans frame.html :

window.onmessage = function(event) {
   var evt = event || window.event;
   evt.source.postMessage('Message from iFrame', evt.origin);
};

sur main.html :

window.onmessage = function(event) {
   var evt = event || window.event;
   alert(evt.data);
};

L'événement est déclenché de la même manière que celui présenté par Rob W :

document.getElementById('frameId').contentWindow.postMessage('message','*');
P粉670838735

Si vous ne contrôlez pas le cadrage du site Web, vous ne pouvez pas contourner la politique d'origine croisée.

Si vous contrôlez les deux sites, vous pouvez utiliser la méthode postMessage de transfert de données entre domaines. Un exemple très basique :

// framed.htm:
window.onmessage = function(event) {
    event.source.postMessage(document.body.innerHTML, event.origin);
};

// Main page:
window.onmessage = function(event) {
    alert(event.data);
};

// Trigger:
// <iframe id="myframe" src="framed.htm"></iframe>
document.getElementById('myframe').contentWindow.postMessage('','*');
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal