Le navigateur empêchera cela, car les domaines sont différents.
Il y a quelques trucs que vous pouvez utiliser pour communiquer entre les images:
- Ajouter un enregistrement DNS pour l'autre site au domaine du site extérieur (www.somewebsite.com et someapp.somewebsite.com) . Ensuite, utilisez document.domain = "somewebsite.com" dans les deux pages "JavaScript".
- Utilisez HTML 5 postMessage() pour communiquer entre les trames. Je sais que cela fonctionne dans Firefox 3 et Internet Explorer 8, mais pas dans IE7.
- Vous pouvez transmettre des messages simples à une autre page en définissant l'URL de la fenêtre parente. Remarque: Il semble que les navigateurs empêchent le paramétrage de l'URL parente. Cette méthode ne fonctionnera que pour la communication unidirectionnelle de parent à enfant.
Ad 3: Vous ne pourrez pas lire l'URL de l'autre image, mais vous pouvez le définir. Si vous modifiez l'URL exactement la même page, mais avec un composant #ancre à l'URL, la page ne sera pas réellement recharger:
window.frames["childFrame"].location.href = "http://www.somewebsite.com/#message"
Vous aurait alors besoin d'ajouter un script à la page extérieure qui régulièrement interroge c'est location.href et traite les messages. Oui, c'est moche, mais si c'est bien fait, ça marchera dans tous les navigateurs courants.
Ooh, postMessage() fera bien. Mon idée était d'exploiter les privilèges accordés aux scripts Greasemonkey pour contourner la restriction du même domaine. C'est mieux; postMessage() est en fait destiné à cela. :) – Peeja
Je dois maintenant supporter IE7, donc j'ai abandonné sur postMessage(). Je ne peux pas faire # 1 non plus. # 3 Je pourrais le faire, mais je n'arrive pas à le faire fonctionner. Dans FF3 au moins, je n'ai pas l'autorisation de définir window.parent.location.href, même pour l'URL actuelle du parent. Est-ce que je manque quelque chose? – Peeja
Hmm, j'ai seulement utilisé cette méthode pour communiquer du cadre parent au cadre incorporé, pas l'inverse. Il y a probablement des limites à cela pour empêcher les cadres de se briser et se forcer à être la première page. – Thorarin