Recherche…


Paramètres

Attribut Détails
name Définit le nom de l'élément, à utiliser avec a étiquette pour changer de l'iframe src .
width Définit la largeur de l'élément en pixels.
height Définit la hauteur de l'élément en pixels.
src Spécifie la page qui sera affichée dans le cadre.
srcdoc Spécifie le contenu qui sera affiché dans le cadre, en supposant que le navigateur le supporte. Le contenu doit être HTML valide.
sandbox Une fois défini, le contenu de l'iframe est traité comme étant d'une origine unique et les fonctionnalités, y compris les scripts, les plug-ins, les formulaires et les fenêtres contextuelles, seront désactivées. Les restrictions peuvent être assouplies de manière sélective en ajoutant une liste de valeurs séparées par des espaces. Voir le tableau dans Remarques pour les valeurs possibles.
allowfullscreen requestFullscreen() le contenu de l'iframe doit être utilisé avec requestFullscreen()

Remarques

Un iframe est utilisé pour incorporer un autre document dans le document HTML en cours.

Vous pouvez utiliser les iframes pour afficher:

  • autres pages HTML sur le même domaine;
  • autres pages HTML sur un autre domaine (voir ci-dessous - Politique de même origine);
  • Documents PDF (bien que IE puisse avoir des problèmes, cette question SO peut aider);

Vous devez utiliser un iframe en dernier recours, car il a des problèmes avec la mise en signet et la navigation, et il y a toujours de meilleures options autres qu'un iframe. Cette question devrait vous aider à mieux comprendre les hauts et les bas des iframes.


Politique de même origine

Certains sites ne peuvent pas être affichés en utilisant un iframe, car ils appliquent une stratégie appelée stratégie de même origine . Cela signifie que le site sur lequel se trouve l'iframe doit se trouver sur le même domaine que celui à afficher.

Cette politique s'applique également à la manipulation du contenu qui réside dans un iFrame. Si l'iFrame accède à du contenu provenant d'un autre domaine, vous ne pourrez pas accéder au contenu d'un iFrame ni le manipuler.

L'élément iframe sur W3C


attribut sandbox

L'attribut sandbox , lorsqu'il est défini, ajoute des restrictions supplémentaires à l'iframe. Une liste de jetons séparés par des espaces peut être utilisée pour assouplir ces restrictions.

Valeur Détails
allow-forms Permet de soumettre des formulaires.
allow-pointer-lock Active l'API du pointeur JavaScript.
allow-popups Les fenêtres contextuelles peuvent être créées à l'aide de window.open ou de <a target="_blank"
allow-same-origin Le document iframe utilise son origine réelle au lieu d'en recevoir une unique. S'il est utilisé avec allow-scripts le document iframe peut supprimer tout sandboxing s'il provient de la même origine que le document parent.
allow-scripts Active les scripts. Le document iframe et le document parent peuvent être en mesure de communiquer entre eux à l'aide de l'API postMessage() . S'il est utilisé avec allow-same-origin le document iframe peut supprimer tous les sandboxing de la même origine que le document parent.
allow-top-navigation Permet au contenu de l'iframe de modifier l'emplacement du document de niveau supérieur.

Les bases d'un cadre en ligne

Le terme "IFrame" signifie Inline Frame. Il peut être utilisé pour inclure une autre page dans votre page. Cela donnera un petit cadre qui montre le contenu exact du base.html .

<iframe src="base.html"></iframe>

Définition de la taille du cadre

Le format IFrame peut être redimensionné à l'aide des attributs width et height , où les valeurs sont représentées en pixels (valeurs de pourcentage autorisées pour HTML 4.01, mais HTML 5 n'autorise que les valeurs en pixels CSS).

<iframe src="base.html" width="800" height="600"></iframe>

Utiliser des ancres avec IFrames

Normalement, un changement de page Web dans un Iframe est initié avec l'Iframe, par exemple, en cliquant sur un lien à l'intérieur de Ifame. Cependant, il est possible de modifier le contenu d'un IFrame depuis l'extérieur de IFrame. Vous pouvez utiliser une balise d'ancrage dont l'attribut href est défini sur l'URL souhaitée et dont target attribut target est défini sur l'attribut name l'iframe.

<iframe src="webpage.html" name="myIframe"></iframe>
<a href="different_webpage.html" target="myIframe">Change the Iframe content to different_webpage.html</a>

Utiliser l'attribut "srcdoc"

L'attribut srcdoc peut être utilisé (au lieu de l'attribut src ) pour spécifier le contenu exact de l'iframe en tant que document HTML complet. Cela donnera un IFrame avec le texte "IFrames is cool!"

<iframe srcdoc="<p>IFrames are cool!</p>"></iframe>

Si l'attribut srcdoc n'est pas pris en charge par le navigateur, l'IFrame utilisera plutôt l'attribut src , mais si les attributs src et srcdoc sont présents et pris en charge par le navigateur, srcdoc a priorité.

<iframe srcdoc="<p>Iframes are cool!</p>" src="base.html"></iframe>

Dans l'exemple ci-dessus, si le navigateur ne prend pas en charge l'attribut srcdoc , il affichera plutôt le contenu de la page base.html .

Bac à sable

Ce qui suit incorpore une page Web non fiable avec toutes les restrictions activées

<iframe sandbox src="http://example.com/"></iframe>

Pour permettre à la page d'exécuter des scripts et de soumettre des formulaires, ajoutez allow-scripts et allow-forms à l' sandbox attribute .

<iframe sandbox="allow-scripts allow-forms" src="http://example.com/"></iframe>

S'il existe un contenu non fiable (tel que des commentaires utilisateur) sur le même domaine que la page Web parent, un iframe peut être utilisé pour désactiver les scripts tout en permettant au document parent d'interagir avec son contenu à l'aide de JavaScript.

<iframe sandbox="allow-same-origin allow-top-navigation" src="http://example.com/untrusted/comments/page2">

Le document parent peut ajouter des écouteurs d'événement et redimensionner l'IFrame en fonction de son contenu. Ceci, associé à allow-top-navigation , peut faire en sorte que l'iframe en bac à sable apparaisse comme faisant partie du document parent.

Ce bac à sable ne remplace pas l’injection d’assainissement mais peut être utilisé dans le cadre d’une stratégie de défense en profondeur .

Sachez également que ce sandbox peut être corrompu par un attaquant qui convainc un utilisateur de visiter directement la source de l'iframe. L'en-tête HTTP de la stratégie de sécurité du contenu peut être utilisé pour atténuer cette attaque.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow