2009-08-24 10 views
0

Quelles méthodes sont disponibles pour surveiller l'état de la page IFRAME, je sais qu'il existe des limites de sécurité, mais j'espère qu'un petit système de notification est encore possible. Ma situation est que j'ai créé une page parente qui se trouve sur le serveur du client, et cette page a une page iframe située sur mon serveur (mon domaine). Puis-je effectuer un javascript sur la page parente pour vérifier si ma page iframe comporte une chaîne spécifique ou créer une page iframe pour informer la page parente?surveillance iframe contenu/statut de la page parent

Existe-t-il par ex. toute possibilité de faire une minuterie qui vérifie le contenu iframe de temps en temps?

J'accepte aussi la réponse comment mondomaine/client.page appelle rappel sur customerdomain.intranet.com/parentpage.htm qui a client sur iframe

Répondre

0

Je me suis renseigné que cela est possible en mettant parent.location (à partir iframe) d'avoir des données de hachage comme celui-ci « mydomain.com/mypage#mymessage »

0

Par défaut, les restrictions de sécurité dans le navigateur empêcheront l'accès de/à la document dans le iframe s'il se trouve dans un domaine différent de la page parent. Ceci est, bien sûr, juste comme il se doit.

Je crois que cela empêcherait même de vérifier l'emplacement actuel de l'iframe, mais cela est facilement testable. Si c'est accessible, alors vous pouvez interroger le iframe pour son emplacement, et chaque fois que la page dans les mises à jour iframe, ajouter un paramètre querystring aléatoire. La comparaison de ce paramètre avec la valeur du sondage précédent vous dirait s'il a été modifié.

Cependant, comme je le dis, je soupçonne que ce n'est pas possible.

Edit: Cette question suggère qu'il est seulement possible pour l'attribut initial src: How do I get the current location of an iframe?

1

Vous devez utiliser des techniques JavaScript de cross site pour être en mesure de le faire. Voici un exemple. Mettez un autre fichier sur votre serveur, appelez-le helper.html, incluez-le dans votre fichier servi par le serveur du client en utilisant un iframe. Réglez le src de l'iframe helper.html avec l'ajout de paramètres get, c'est-à-dire. http: /myserver.com/helper.html? param1 = a & param2 = b, dans le fichier auxiliaire, utilisez javascript pour appeler la méthode sur le parent du parent (parent.parent.messageFromIframe (params)). Quelle est la page sur votre serveur lui-même. Étant donné que helper et la page de conteneur sont sur le même domaine, cela devrait fonctionner. La technique est populaire, par exemple Facebook l'utilisait pour son API Javascript.

+0

désolé ne comprends pas complètement celui-ci .. Ça sonne bien! Pouvez-vous donner plus de détails. Je veux communiquer entre 2 domaines. – Tom

+0

fondamentalement vous communiquez avec le fichier auxiliaire Bey définissant le src iframe le contient et en passant des paramètres. le code js à l'intérieur de l'assistant peut accéder aux fonctions du parent, ce qui signifie que vous pouvez appeler n'importe quel code js à l'intérieur de votre propre page de conteneur. –

+0

donc vous voulez dire qu'il ya iframe récursif, un autre iframe à l'intérieur de mon iframe? – Tom

Questions connexes