J'obtiens l'erreur ci-dessous lorsque j'essaie de définir une valeur de hachage sur l'url parent d'iframe qui contient une autre URL de domaine:
JavaScript non sécurisé tente d'accéder au cadre avec l'URL "URL1" à partir du cadre avec l'URL "URL2". Les domaines, protocoles et ports doivent correspondre.
Comment puis-je résoudre ce problème?
Réponses:
À partir d'un document enfant d'origine différente, vous n'êtes pas autorisé à accéder à la
location.hash
propriété de la fenêtre supérieure , mais vous êtes autorisé à définir lalocation
propriété elle-même.Cela signifie que, étant donné que l'emplacement supérieur de la fenêtre est
http://example.com/page/
, au lieu de fairevous devez connaître l'emplacement des parents et faire
Comme la ressource n'est pas parcourue, cela fonctionnera comme prévu, en changeant uniquement la partie hachée de l'URL.
Si vous l'utilisez pour la communication inter-domaines, je vous recommande d'utiliser easyXDM à la place.
la source
Le Crossframe-Scripting n'est pas possible lorsque les deux cadres ont des domaines différents -> Sécurité.
Voir ceci: http://javascript.about.com/od/reference/a/frame3.htm
Maintenant, pour répondre à votre question: il n'y a pas de solution ou de contournement, vous devriez simplement vérifier la conception de votre site Web pourquoi il doit y avoir deux cadres de domaines différents qui changent l'URL de l'autre.
la source
J'obtenais le même message d'erreur lorsque j'ai essayé de changer le domaine pour iframe.src.
Pour moi, la réponse était de changer l'iframe.src en une URL sur le même domaine, mais qui était en fait une page de redirection html vers le domaine souhaité. L'autre domaine est ensuite apparu dans mon iframe sans aucune erreur.
A fonctionné comme un charme. :)
la source
Une solution pourrait être d'utiliser un fichier local qui récupère le contenu distant
remoteInclude.php
Le HTML
la source
J'ai trouvé que l'utilisation de la version XFBML du bouton J'aime de Facebook au lieu de la version HTML5 a résolu ce problème. Ajoutez le code ci-dessous à l'endroit où vous souhaitez que le bouton apparaisse:
Ajoutez ensuite ceci à votre balise HTML:
la source
Le problème est que même si vous créez un proxy ou chargez le contenu et l'injectez comme s'il était local, tous les scripts définis par ce contenu seront chargés à partir de l'autre domaine et causeront des problèmes entre domaines.
la source