web-dev-qa-db-fra.com

Différence entre contentDocument et contentWindow javascript iframe / frame access properties

  • Quelle est la différence entre ces deux propriétés (contentDocument et contentWindow)?
  • Y a-t-il une différence dans la façon dont ils accèdent au contenu dans le cadre/iframe?
  • Y a-t-il des problèmes de performances?
  • Dois-je utiliser contentXXXXX.document.getElementsBy... ou contentXXXXX.getElementsBy...?

J'ai cherché sur le Web mais je n'ai pas trouvé trop d'informations et avant de faire une grande recherche, je pensais pouvoir demander à la grande communauté ici à stackoverflow. En tant que commentaire, je fais un script qui compte les entrées sur une page Web, accédant à tous les niveaux de cadres ou d'iframes et ajoutant les entrées trouvées à l'intérieur des cadres/iframes au nombre global. Tout le contenu est censé provenir du même domaine, donc il ne devrait pas y avoir de problème avec la même politique d'origine, je crois. Pour le script, j'utilise du JavaScript pur sans jQuery ou des frameworks/bibliothèques qui facilitent la vie u_u jaja. Il s'agit d'un script d'entraînement et si quelqu'un souhaite consulter le code, je le posterai, pas de problème. Merci à tous ceux qui prennent le temps de l'expliquer!

30
Samuel Lopez

Je pense que le <iframe> Documentation MDN l'explique bien:

À partir de l'élément DOM iframe, les scripts peuvent accéder à l'objet window de la page HTML incluse via la propriété contentWindow. La propriété contentDocument fait référence à l'élément document à l'intérieur de iframe (c'est l'équivalent de contentWindow.document), mais n'est pas pris en charge par les versions d'Internet Explorer antérieures à IE8.

Vous utiliserez donc contentWindow de la même manière que vous utiliserez window et contentDocument comme vous utiliserez document.

61
Felix Kling