Voici le deal:
domain.com/page - La page parent (document.domain = domain.com) contient un sous-domaine iframe.com/page - Enfant iframe (document.domain = non défini) se trouve sur un sous-domaine.
Y at-il un moyen d'accéder au DOM de cette iframe ou est-ce que je n'ai pas de chance?
La même règle Origin m'empêche-t-elle de forcer un document.domain sur un iframe contenu dans une page parent? Je suppose que cela irait à l'encontre de l'objectif de la même stratégie d'origine ... Si tel est le cas, existe-t-il une solution de contournement pour accéder au DOM de l'iframe sur la page parent rendue?
Il y a un moyen. Lorsque la page dans l'iframe se charge, demandez-lui de procéder comme suit
parent.childGetElementById = function (id) {return document.getElementById(id);}
parent.childLoaded();
Cela créera une fonction dans la portée globale de la page parente (qui contient l'iframe). Ensuite, dans le parent, juste avoir le suivant
function childLoaded() {var dom = childGetElementById('someid');}
Ceci est en cours puisque vous avez le contrôle de la page de votre chargement dans l'iframe ... sinon, vous n'avez pas de chance.
Ceci est une mesure de sécurité du navigateur, sinon tout le monde encapsulerait vos sites Web bancaires et effacerait vos mots de passe lorsque vous vous connecteriez.
Vous pouvez parler de l'iframe au parent, mais pas à nouveau dans un iframe.
Vous n'avez pas de chance, autant que je sache. Vous pouvez parler entre eux en utilisant le hash-bang dans l'URL, voir this pour une discussion décente.