2010-12-12 7 views
5

J'essaye actuellement de charger une page dans un sous-domaine, sur mon domaine principal, en utilisant un iframe, et ai l'appel de sous-domaine une fonction javascript (quand dom -ready) dans mon domaine principal, afin que le domaine principal puisse redimensionner l'iframe en fonction de la hauteur du contenu. Voici un exempledocument.domain "permission denied" problèmes avec IE8

www.mysite.com (code dans la page):

<script type="text/javascript"> 
document.domain = "mysite.com"; 
function doSomething() { 
    //do something 
} 
</script> 
<iframe id="mytestid" src="test.mysite.com" height="0" width="900"></iframe> 

Et pour mon autre site, test.mysite.com, voici le code dans la page:

<script> 
document.domain = "mysite.com"; 

$(document).ready(function() { 
    window.parent.doSomething(); 
}); 
</script> 

Cela semble fonctionner correctement pour firefox, safari et chrome, mais pas pour IE8. IE8 me donne toujours une « autorisation refusée » erreur lors de l'appel window.parent.doSomething()

Je n'ai pas pu tester sur IE7 ou IE6 pour voir si le problème persiste, mais quelqu'un a rencontré ce problème? Est-ce que j'ai manqué quelque chose avec la façon dont je suis en train d'élaborer le code?

Merci pour l'aide les gars.

+0

duplication possible de [Autorisation refusée IE iFrame] (http://stackoverflow.com/questions/2953158/permission-denied-ie-iframe) – alex

Répondre

1

est ici un fil avec beaucoup de commentaires au sujet de quelques problèmes possibles:

Remarque que je ne l'ai pas tester, comme je n'ai pas IE. Malheureusement, ni semblent convaincants de mon point de vue - essayez-le et voir si cela fonctionne pour vous.

Ainsi, à partir du poste ci-dessus, il semble qu'il ya deux causes possibles:

  • Le poste exige que tous les IE allègue des documents à avoir le même domaine. Si vous avez plus de documents (iframes et autres), essayez de les supprimer et de tester simplement avec ces deux éléments (principal et iframe)
  • Voir le dernier commentaire dans le message - il peut s'agir simplement d'une condition de concurrence. Essayez de le mettre dans un setTimeout avec quelques secondes d'attente après deux pages ont mis document.domain à la même valeur
2

document.domain « permission denied » des problèmes avec IE8 RESOUDRE !!

Comme d'autres utilisateurs l'ont dit, il suffit de définir un délai de quelques secondes après la définition de document.domain où l'iframe est sur la page, puis d'appeler votre deuxième page dans l'iframe.

vous devez définir la valeur de votre SRC iframe, quelques secondes après avoir défini document.domain sur IE8 et travaillerez ..

1

J'ai couru dans le même numéro et en utilisant un délai d'attente n'a pas résoudre le problème. Comme j'avais un autre site avec des paramètres similaires où tout fonctionnait bien, j'ai ouvert les deux fenêtres côte à côte et j'ai remarqué dans la barre d'état en bas que l'un était sous "Intranet local" tandis que l'autre était sous "Sites de confiance". ".Cela m'a amené à un autre point à vérifier: assurez-vous que les deux sous-domaines apparaissent dans la même zone de sécurité dans les propriétés de sécurité Internet d'Internet Explorer! Si ce n'est pas le cas, l'erreur "Autorisation refusée" s'affiche.

Questions connexes