Voici mon code sur http://my-localhost.com/iframe-test.html
<html> <head><title>Welcome Iframe Test</title></head> <body> <iframe src="http://www.my-website.com/index.html" width="500" height="500"></iframe> <script type="text/javascript"> function alertMyMessage(msg){ alert(msg); } </script> </body> </html>
Voici le code sur http://www.my-website.com/index.html
<html> <head></title>Welcome to my Server</title></head> <body> <h1>Welcome to My Server</ht> <a href="javascript:void(0)" title="Click here" onClick="parent.alertMyMessage('Thanks for Helping me')">Click Here</a> </body> </html>
Quand je clique sur le lien "Cliquez ici". J'ai suivi l'erreur.
Uncaught SecurityError: bloqué un cadre avec l'origine " http://www.my-website.com " d'accéder à un cadre avec l'origine " http://my-localhost.com ". Les protocoles, les domaines et les ports doivent correspondre.
- JQuery ajax cross-domain call and permission issue
- Puis-je faire une requête jQuery JSONP sans ajouter le paramètre '? Callback =' dans l'URL?
- Quelle est la syntaxe de faire un XMLHTTPREQUEST multi-domaine vers un serveur FTP?
- Paramètres de Crossdomain dans Google Chrome
- Interrogatoire de jQuery ajax en cours de domaine avec les lettres de créance
Aidez-moi à résoudre ce problème ou à apporter une autre solution pour cela.
Vous ne pouvez pas accéder au DOM d'une page chargée dans un cadre d'une origine différente. Ceci est bloqué pour des raisons de sécurité (imaginez un site Web aléatoire que vous avez visité pour ouvrir votre service de messagerie Web dans un iframe caché et vous pouvez voir pourquoi).
Le plus proche que vous puissiez venir, et seulement si vous contrôlez les deux sites, c'est passer des messages entre eux en utilisant l' api de messagerie Web .
Dans une page, écrivez une fonction pour gérer les messages, puis ajoutez-le en tant qu'écran d'événement de message.
function receiveMessage(event) { alert(event.data); } addEventListener("message", receiveMessage, false);
Dans l'autre, envoyez le message:
parent.postMessage("This is a message", "*");
Voir MDN pour plus d'informations
Vous pouvez utiliser PostMessage!
if (window.addEventListener) { window.addEventListener ("message", receive, false); } else { if (window.attachEvent) { window.attachEvent("onmessage",receive, false); } } function receive(event){ var data = event.data; if(typeof(window[data.func]) == "function"){ window[data.func].call(null, data.params[0]); } } function alertMyMessage(msg){ alert(msg); }
function send(){ window.parent.window.postMessage( {'func':'alertMyMessage','params':['Thanks for Helping me']}, 'http://www.my-website.com' ); }
https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage