J'ai en fait écrit ce code.
Lorsque vous essayez de faire une comète inter-sous-domaine / port, l'iframe doit avoir la même document.domainvaleur que la trame parent. Malheureusement, le navigateur stocke le nom de domaine ET le port en interne pour la document.domainvaleur d' origine . Mais le getter et le setter en javascript ne savent rien du port. Le problème est donc le suivant: si le cadre supérieur document.domainest ('example.com', 80), et le cadre inférieur ('comet.example.com', 80), comment obtenez-vous également le cadre inférieur ('example.com', 80)?
Vous ne pouvez pas, car la modification de la partie du nom d'hôte entraînera nécessairement la définition du port null, donc le mieux que vous puissiez faire est ('example.com', null)dans le cadre inférieur. Ainsi, le cadre supérieur doit également être défini sur cette valeur, et le paramètre document.domain=document.domainfait exactement cela. Il modifie la représentation interne dans le navigateur de ('example.com', 80)à ('example.com', null), puis tout correspond et la communication de trame entre ports / sous-domaines fonctionne.