IFRAME |
Cadre en ligne |
---|---|
HTML 4+ | IE2+, FireFox 1+, Opera 3+, Chrome 1+, Safari 1+, Netscape 7+, WebTV, MSN TV |
Syntaxe
<IFRAME paramètres > ... </IFRAME> |
Paramètres
Paramètre | Description | ||
---|---|---|---|
ALIGN=alignement | Ce paramètre de balise permet de définir le type d'alignement du cadre appliqué par défaut : | ||
Constante | Description | ||
"bottom" | Cette constante indique que l'alignement sera effectué à partir du bas | ||
"middle" | Cette constante indique que l'alignement sera effectué à partir du milieu | ||
"left" | Cette constante indique que l'alignement sera effectuer à partir de la gauche | ||
"right" | Cette constante indique que l'alignement sera effectuer à partir de la droite | ||
"top" | Cette constante indique que l'alignement sera effectuer à partir du haut | ||
CLASS=nomclasse | Ce paramètre de balise permet d'indiquer la classe de feuille de style associé avec cette balise. | ||
FRAMEBORDER=valeur | Ce paramètre de balise permet d'indiquer si la bordure est affiché ou non: | ||
Constante | Description | ||
"0" | Cette constante indique que la bordure n'est pas affiché. | ||
"1" | Cette constante indique que la bordure est affiché. | ||
HEIGHT=pixels HEIGHT=pourcentage% |
Ce paramètre de balise permet de définir la hauteur du cadre. | ||
ID=identificateur | Ce paramètre de balise permet d'indiquer l'identificateur de cette balise. | ||
LANG=mid | Ce paramètre de balise permet d'indiquer le MID du langage: | ||
Valeur | Description | ||
"af" | Cette valeur indique la langue africaine | ||
"ar" | Cette valeur indique la langue arabe | ||
"ar-AE" | Cette valeur indique la langue arabe des Émirates-Unies | ||
"ar-BH" | Cette valeur indique la langue arabe de Bahreïn | ||
"ar-DZ" | Cette valeur indique la langue arabe de l'Algérie | ||
"ar-EG" | Cette valeur indique la langue arabe de l'Egypte | ||
"ar-IQ" | Cette valeur indique la langue arabe de l'Irak | ||
"ar-JO" | Cette valeur indique la langue arabe de la Jordanie | ||
"ar-KW" | Cette valeur indique la langue arabe du Koweit | ||
"ar-LB" | Cette valeur indique la langue arabe du Liban | ||
"ar-LY" | Cette valeur indique la langue arabe du Libye | ||
"ar-MA" | Cette valeur indique la langue arabe du Maroc | ||
"ar-OM" | Cette valeur indique la langue arabe du Oman | ||
"ar-QA" | Cette valeur indique la langue arabe du Qatar | ||
"ar-SA" | Cette valeur indique la langue arabe de l'Arabie Saoudite | ||
"ar-SY" | Cette valeur indique la langue arabe de Syrie | ||
"ar-TN" | Cette valeur indique la langue arabe de la Tunisie | ||
"ar-YE" | Cette valeur indique la langue arabe du Yémen | ||
"be" | Cette valeur indique la langue de Biélorussie | ||
"bg" | Cette valeur indique la langue de Bulgarie | ||
"cs" | Cette valeur indique la langue de Crète | ||
"da" | Cette valeur indique la langue danoise | ||
"de" | Cette valeur indique la langue allemande | ||
"de-AT" | Cette valeur indique la langue allemande d'autriche | ||
"de-CH" | Cette valeur indique la langue allemande de Suisse | ||
"de-LI" | Cette valeur indique la langue allemande de Liechtenstein | ||
"de-LU" | Cette valeur indique la langue allemande du Luxembourg | ||
"el" | Cette valeur indique la langue grecque | ||
"en" | Cette valeur indique la langue anglaise | ||
"en-AU" | Cette valeur indique la langue anglaise australienne | ||
"en-BZ" | Cette valeur indique la langue anglaise du Bélize | ||
"en-CA" | Cette valeur indique la langue anglaise canadienne | ||
"en-GB" | Cette valeur indique la langue anglaise de la Grande Bretagne | ||
"en-IE" | Cette valeur indique la langue anglaise de l'Irlande | ||
"en-JM" | Cette valeur indique la langue anglaise de la Jamaïque | ||
"en-NZ" | Cette valeur indique la langue anglaise du Néo-zélandais | ||
"en-US" | Cette valeur indique la langue anglaise à l'américaine | ||
"en-ZA" | Cette valeur indique la langue anglaise de l'afrique du sud | ||
"es" | Cette valeur indique la langue espagnol | ||
"es-AR" | Cette valeur indique la langue espagnol de l'Argentine | ||
"es-BO" | Cette valeur indique la langue espagnol de Bolivie | ||
"es-CL" | Cette valeur indique la langue espagnol du Chilie | ||
"es-CO" | Cette valeur indique la langue espagnol de Colombie | ||
"es-CR" | Cette valeur indique la langue espagnol du Costa Rica | ||
"es-EC" | Cette valeur indique la langue espagnol du Equateur | ||
"es-GT" | Cette valeur indique la langue espagnol du Guatemala | ||
"es-HN" | Cette valeur indique la langue espagnol du Honduras | ||
"es-MX" | Cette valeur indique la langue espagnol du Mexique | ||
"es-NI" | Cette valeur indique la langue espagnol du Nicaragua | ||
"es-PA" | Cette valeur indique la langue espagnol du Panama | ||
"es-PE" | Cette valeur indique la langue espagnol du Pérou | ||
"es-PR" | Cette valeur indique la langue espagnol du Puerto Rico | ||
"es-PY" | Cette valeur indique la langue espagnol du Paraguay | ||
"es-SV" | Cette valeur indique la langue espagnol du El Salvador | ||
"es-TT" | Cette valeur indique la langue espagnol du Trinidad | ||
"es-UY" | Cette valeur indique la langue espagnol du Uruguay | ||
"es-VE" | Cette valeur indique la langue espagnol du Venezuela | ||
"et" | Cette valeur indique la langue estonienne | ||
"eu" | Cette valeur indique la langue basque | ||
"fa" | Cette valeur indique la langue iranienne | ||
"fi" | Cette valeur indique la langue finlandaise | ||
"fo" | Cette valeur indique la langue faeroese | ||
"fr" | Cette valeur indique la langue française | ||
"fr-BE" | Cette valeur indique la langue française de Belgique | ||
"fr-CA" | Cette valeur indique la langue française canadienne | ||
"fr-CH" | Cette valeur indique la langue française de Suisse | ||
"fr-FR" | Cette valeur indique la langue française de France | ||
"fr-LU" | Cette valeur indique la langue française du Luxembourg | ||
"fr-QC" | Cette valeur indique la langue française québécoise | ||
"gd" | Cette valeur indique la langue galicienne | ||
"he" | Cette valeur indique la langue hébreu | ||
"hi" | Cette valeur indique la langue hindou | ||
"hr" | Cette valeur indique la langue croate | ||
"hu" | Cette valeur indique la langue hongroise | ||
"in" | Cette valeur indique la langue indonésienne | ||
"is" | Cette valeur indique la langue Islandaise | ||
"it" | Cette valeur indique la langue italienne | ||
"it-CH" | Cette valeur indique la langue italienne de la Suisse | ||
"ja" | Cette valeur indique la langue japonais | ||
"ji" | Cette valeur indique la langue yiddish | ||
"ko" | Cette valeur indique la langue coréein | ||
"lt" | Cette valeur indique la langue littuanienne | ||
"lv" | Cette valeur indique la langue Lettische | ||
"mk" | Cette valeur indique la langue de la Macédoine | ||
"ms" | Cette valeur indique la langue malésienne | ||
"mt" | Cette valeur indique la langue maltaise | ||
"nl" | Cette valeur indique la langue néerlandaise | ||
"nl-BE" | Cette valeur indique la langue néerlandaise Belge | ||
"no" | Cette valeur indique la langue norvégien | ||
"pl" | Cette valeur indique la langue polonaise | ||
"pt" | Cette valeur indique la langue portuguaise | ||
"pt-br" | Cette valeur indique la langue portuguaise du Brésil | ||
"rm" | Cette valeur indique la langue Rhaeto-Romanic | ||
"ro" | Cette valeur indique la langue roumain | ||
"ro-MO" | Cette valeur indique la langue roumain de la Moldavie | ||
"ru" | Cette valeur indique la langue russe | ||
"ru-MO" | Cette valeur indique la langue russe de la Moldavie | ||
"sa" | Cette valeur indique la langue sanskrit | ||
"sb" | Cette valeur indique la langue sorbianne | ||
"sk" | Cette valeur indique la langue slovaque | ||
"sl" | Cette valeur indique la langue Slovéne | ||
"sq" | Cette valeur indique la langue albanaise | ||
"sr" | Cette valeur indique la langue serbe | ||
"sv" | Cette valeur indique la langue suèdoise | ||
"sv-FI" | Cette valeur indique la langue suèdoise de la Finlande | ||
"sx" | Cette valeur indique la langue estonienne | ||
"th" | Cette valeur indique la langue thaïlandaise | ||
"tn" | Cette valeur indique la langue tswana de l'Afrique du sud | ||
"tr" | Cette valeur indique la langue turc | ||
"ts" | Cette valeur indique la langue tsonga de l'Afrique du sud | ||
"uk" | Cette valeur indique la langue ukrainienne | ||
"ur" | Cette valeur indique la langue urdu | ||
"vi" | Cette valeur indique la langue vietnamienne | ||
"xh" | Cette valeur indique la langue xhosa de l'Afrique | ||
"zh" | Cette valeur indique la langue chinoise | ||
"zh-CN" | Cette valeur indique la langue chinoise de PRC | ||
"zh-HK" | Cette valeur indique la langue chinoise de Hong-Kong | ||
"zh-SG" | Cette valeur indique la langue chinoise de Singapour | ||
"zh-TW" | Cette valeur indique la langue chinoise de Taïwan | ||
"zu" | Cette valeur indique la langue zulu de l'Afrique | ||
... | ... | ||
LONGDESC=url | Ce paramètre de balise permet d'indiquer l'adresse URL d'une longue description du contenu du cadre. | ||
MARGINHEIGHT=pixels | Ce paramètre de balise permet d'indiquer la taille de la marge situé entre le haut et le bas et le cadre. | ||
MARGINWIDTH=pixels | Ce paramètre de balise permet d'indiquer la taille de la marge situé entre la gauche et la droite et le cadre. | ||
NAME=nom | Ce paramètre de balise permet d'indiquer le nom de ce cadre. | ||
NORESIZE=constante | Ce paramètre de balise permet d'indiquer que l'utilisateur ne pas redimensionné le cadre: | ||
Constante | Description | ||
"noresize" | Cette constante indique que l'utilisateur ne pas redimensionné le cadre. | ||
SANDBOX=valeur | Ce paramètre permet d'indiquer un attribut «sandbox» définit pour lui-même. Voici les valeurs reconnus et pouvant se combiner en les séparant par des espaces regrouper entre deux guillemets : | ||
Valeur | Description | ||
allow-forms | Cette valeur permet de réactiver la soumission de formulaire. | ||
allow-pointer-lock | Cette valeur permet de réactiver les API. | ||
allow-popups | Cette valeur permet de réactiver les fenêtres surgissantes. | ||
allow-same-origin | Cette valeur permet d'autoriser le contenu du IFRAME a être en dehors du point d'origine. | ||
allow-scripts | Cette valeur permet de réactiver les scripts. | ||
allow-top-navigation | Cette valeur permet d'allouer le contenu du IFRAME pour l'autoriser dans le haut du navigateur Web. | ||
SCROLLING=valeur | Ce paramètre de balise permet d'indiquer que l'action de la barre de défilement: | ||
Constante | Description | ||
"auto" | Cette constante indique que la barre de défilement apparait si nécessaire. | ||
"no" | Cette constante indique que la barre de défilement n'apparait jamais même lorsqu'elle est nécessaire. | ||
"yes" | Cette constante indique que la barre de défilement apparait tout le temps même lorsqu'elle n'est pas nécessaire. | ||
SRC=url | Ce paramètre de balise permet d'indiquer l'adresse URL du cadre à afficher. | ||
STYLE=list | Ce paramètre de balise permet d'indiquer des paramètres de feuille de style associé avec cette balise. | ||
TITLE=message | Ce paramètre de balise permet d'indiquer le titre ou la bannière jaune associé avec cette balise. | ||
WIDTH=pixels WIDTH=pourcentage% |
Ce paramètre de balise permet de définir la largeur d'un cadre. |
Description
Cette balise permet de créer une sous-fenêtre intégrée à la fenêtre. La balise IFRAME est souvent utilisée pour fusionner une page Web à l'intérieur d'une page Web existante, dans d'autres cas pour l'inclusion d'une publicité ou enfin dans les applications Web afin de donner un aperçu du contenu.
Remarques
- Lenteur de redimensionnement : Si vous souhaitez effectuer des redimensionnements de la taille de vos balises IFRAME dans votre page Web, vous devrez songez à utiliser la propriété de feuille de style «pointer-events:» disponible à partir de quelques spécifications CSS3 et pleinement à partir du CSS4.
- Il ait déconseillé d'utiliser les services de JavaScript de Google Analytics (ga.js) avec cette balise, car de nombreuses incompatibilités peuvent survenir.
- Les attributs «rel="nofollow"» sont uniquement supporté par la balise «A». De plus, Googlebot ne bloc pas la lecture du contenu par cette méthode. Si vous êtes confronté à cette situation, il faudra utiliser le fichier «robots.txt» et d'utiliser une balise «META» comme ceci : «<meta name="robots" content="noindex,nofollow">» (laquelle interdira la page au complet et non pas uniquement le IFRAME). Si le JavaScript est supporté par le navigateur, vous pouvez aussi écrire votre IFRAME avec une instruction dans le genre «<script>document.write('<iframe .. >')</script>»
- Page HTTPS : Si vous êtes dans une page HTTPS, votre page indiqué dans un IFRAME doit aussi être une page avec un lien HTTPS car sinon il affichera une page blanche. De plus, le serveur du nom de domaine cible doit retourner une identificateur comme ceci si le serveur Web est Apache :
- Une URL vers un HTTPS dans une page HTTP est une très mauvaise pratique, car il rend difficile la demande d'informations détaillée sur cette page (en particulier les informations de sécurité). Ainsi, vous empêchez le navigateur d'afficher les symboles de sécurité habituelle : le verrou, la barre d'adresse du site,... De plus, cette pratique n'est pas recommandée par «3-D Secure» pour les transactions électroniques. Il faut donc avoir la page au complet en HTTPS pour résoudre le problème et idéalement ne pas avoir de IFRAME.
- Si vous souhaitez vous connecter avec un utilisateur particulier dans un IFRAME, soit un «Basic Authentication», vous devrez écrire un code source ressemblant à ceci :
- Conflit : Dans la plupart des navigateurs, le paramètre «style» est prioritaire sur le paramètre «class» ou «id». Ainsi, si vous définissez aux deux endroits, des valeurs différentes, par exemple «style="color:red;"» et «color:green» dans la classe, c'est le paramètre «style» avec son «color:red» qui sera utilisé par le navigateur Web. Il est à noter qu'il est préférable de ne pas mettre des informations contradictoires comme celle-ci (deux paramètres identiques avec des valeurs différentes) car le résultat peut malgré tout demeurer imprévisible.
- Appliquer des CSS dans le contenu d'un IFRAME : Pour des raisons de sécurité, le IFRAME doit provenir du même nom de domaine que son parent si vous souhaitez modifier son contenu. Uniquement s'il s'agit du même nom de domaine, il est possible de le modifier à l'aide d'un code JavaScript ressemblant à ceci :
- IFRAME dynamique : Si vous souhaitez créer dynamiquement un IFRAME, vous devrez utilisez un code ressemblant à ceci en JavaScript :
- <html>
- <body>
- <div id="insereici"></div>
- <script>
- var iframe = document.createElement('iframe');
- iframe.width="100%";
- var html = '<html><body>Ceci est dans un IFRAME</body></html>';
- document.getElementById("insereici").appendChild(iframe);
- iframe.contentWindow.document.open('text/html', 'replace');
- iframe.contentWindow.document.write(html);
- iframe.contentWindow.document.close();
- </script>
- </body>
- </html>
Header set Access-Control-Allow-Origin "*" |
Sinon, il retournera un message d'erreur «Refused to display '...' in a frame because it set 'X-Frame-Options' to 'sameorigin'».
Cependant, comme le mentionne la base de connaissance Microsoft kb834489, IE ne prend pas en charge par défaut ce genre de fonctionnalité pour des raisons de sécurité.
Il est aussi possible d'utiliser une technique similaire avec jQuery :
Exemple
Il n'est pas possible de montrer un exemple sans avoir au moins 2 fichiers, ainsi voici tout d'abord le contenu du fichier «mainiframe.html» :
et le fichier «childiframe.htm» étant appeler par le premier fichier :
on obtiendra le résultat suivant :
AVANT APRES |
Références
HTML - The Definitive Guide, 3rd Edition, Edition O'Reilly, Chuck Musciano, Bill Kennedy, 1998, ISBN: 1-56592-492-4, page 513 à 514
La Bible Micro Application HTML & Développement Web, Edition Micro Application, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 614