1 votes

Accéder au DOM du parent depuis script dans un iframe dans IE Mobile

J'ai une fenêtre encadrée (actuellement iframe mais peut éventuellement être frame) - je n'ai pas le contrôle sur cela.

Je voudrais détecter si mon contenu se trouve à l'intérieur d'une iframe (ou d'un cadre).

Je voulais comparer l'emplacement du document actuel avec celui de l'objet top mais il semble qu'il s'agisse du même objet (top === window).
Après une longue recherche sur Internet, j'ai trouvé ceci Entrée du blog IEMobile et dans un des commentaires il y a cette réponse :

iemoblog a dit :

Non, vous ne pouvez pas accéder à une partie de la base de données de la DOM du parent depuis script dans un iframe dans IE Mobile.
20 décembre 2007 12:12 PM

Je n'arrive pas à trouver de documentation à ce sujet. Quelqu'un peut-il confirmer cette affirmation ou, mieux encore, suggérer un moyen de détecter si la page est "encadrée" ?

2voto

Guss Points 6512

Le principal problème est que si le cadre est d'un domaine différent de celui du conteneur, votre JavaScript est mis en bac à sable et ne peut pas accéder à l'autre cadre/conteneur.

Ce que vous pouvez faire, c'est essayer de comparer window a window.top et les résultats possibles sont : 1. Ils sont les mêmes -> vous êtes la fenêtre supérieure de la page. 2. Elles ne sont pas identiques -> vous n'êtes pas la fenêtre supérieure de la page, il y a une page conteneur, dans le même domaine que vous, qui contient votre fenêtre comme un cadre ou un iframe. 3. Une exception de sécurité est levée -> vous n'êtes pas la fenêtre supérieure de la page, mais la fenêtre supérieure provient d'un autre domaine et vous ne pouvez pas y accéder.

peut-être quelque chose comme ça :

try {
  if (window == window.top)
    return "I'm parent";
  else
    return "I'm a child of " + window.top.location;
} catch (e) {
  return "I'm a child of something from another domain";
}

1voto

Dror Points 5006

Comme je n'ai rien trouvé après avoir trouvé le commentaire laissé dans la section Blog IE Mobile (par Charles Morris - responsable de programme au sein de l'équipe IE Mobile, sur son propre post) Je suis obligé d'ajouter cette réponse et de l'affirmer :

Comme conçu (ou un bug au moins)

prc a dit :

concernant le support des iframes : Je peux créer une iframe, mais je ne suis pas en mesure de "regarder à l'extérieur" du cadre. "top" et "parent" semblent se référer uniquement à l'iframe elle-même et non à l'ancêtre ou l'ancêtre ou à l'ancêtre immédiat, comme l'indique la documentation suggère qu'ils devraient. Existe-t-il un moyen de faire référence au javascript dans le document englobant à partir d'un iframe ?

19 décembre 2007 9:29 PM

iemoblog a dit :

Non, vous ne pouvez pas accéder à n'importe quelle partie des DOM du parent à partir de script dans un iframe dans IE Mobile.

20 décembre 2007 12:12 PM

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X