2017-10-20 25 views
0

Je souhaite en savoir plus sur les règles d'origine identique. Il y a un site qui en parle. Mais il doit y avoir sth. mal avec le premier exemple parce que je suis une erreur Illegal document.domain valueErreur de règle d'origine identique

Voici le code problématique:

Le site parent situé à http://www.qnimate.com/parent.html:

<iframe src="http://www.blog.qnimate.com/child.html" id="myIFrame"></iframe> 
<script> 
window.document.domain = "www.qnimate.com";//you also need to set the parent's document.domain variable 
window.document.getElementById("myIFrame").contentWindow.document.body.style.backgroundColor = "red";//this access is allowed by default 
</script> 

et iframe situé à http://www.blog.qnimate.com/child.html:

<script> 
window.document.domain = "www.qnimate.com"; //if we remove this line then the below line will not work and throw a same origin policy exception. 
window.parent.document.body.style.backgroundColor = "blue"; 
</script> 

Répondre

0

Vous pouvez uniquement définir document.domain sur un superdomaine du domaine actuel. Vous pouvez supprimer des composants de l'extrémité gauche. Le domaine actuel est www.blog.qnimate.com. Il peut donc être défini sur blog.qnimate.com ou qnimate.com.

Vous ne pouvez pas supprimer les composants au milieu, donc vous ne pouvez pas avoir www.qnimate.com.


Communiquer à travers différentes origines par un iframe, utilisez postMessage comme décrit in this question.

+0

Ok donc l'exemple ci-dessus n'est pas correct? – Mulligun81

+0

@ Mulligun81 - Oui. L'exemple de code que vous avez observé génère une erreur incorrecte. – Quentin