5160 sujets

Le Bar du forum

Salut à tous,

Après quelques petites documentation sur le net je m’interroge sur les <iframe> car si elles ont été beaucoup boudées par le passé j'en croise toujours de temps en temps.

J'en utilise moi même pour des applications Intranet mais est-ce une bonne solution ? Si non pourquoi ? Si oui pourquoi ?

j'ai pu lire l'un des articles de Rafaël sur la balise <object> (même si ca date).

Mais je m’interroge. Je ne sais pas si c'est un sujet à troll mais ceci n'est pas une tentative pour.

Personnelement j'utilise des <iframe> pour inclure des fichiers venant d'autres serveur a l'interieur d'une interface web.
Modifié par ffwrude (25 Oct 2011 - 15:50)
ffwrude a écrit :
est-ce une bonne solution ?

Tout dépend de ce qu'on veut faire (et dans une certaine mesure des compétences et du temps disponible).

Les IFRAME ont pour avantage de constituer un contenu séparé de la page hôte. C'est-à-dire que la page affichée dans l'IFRAME peut avoir ses propres scripts et styles qui n'interagissent pas avec la page hôte, et cette isolation est parfois utile.
(On peut tenter de faire sensiblement la même chose avec OBJECT mais ça n'a pas vraiment d'intérêt.)

Si au contraire ont veut intégrer un contenu comme contenu à part entière de la page principale, il vaut mieux l'insérer dans le DOM de la page (à partir d'une source HTML, XML ou JSON récupérée en XHR par exemple).

Et bien sûr dans certains cas on peut avoir récupéré le contenu côté serveur, l'avoir préparé sous la forme de fragment HTML et inséré dans le rendu HTML final.

Quant à savoir quelle solution retenir... bah comme toujours, ça dépend (de pas mal de choses).
Merci de ta réponse Smiley smile

Dans mon cas j’intègre des applications "stand-alone" dans une interface.

Ma question était plutôt du genre : "Est-ce que cette balise est conseillée ou non peut importe le cas. En gros. Est-ce que c'est une balise à ne SURTOUT pas utiliser ou est-elle encore dans les standards etc..."
Une règle de base (a rule of thumb comme disent d’autres) : si le contenu doit pouvoir être consigné dans un marque page, l’IFRAME doit être exclus, sinon, il peut être bon, et dans ce cas comme dit plus haut, ça dépend… de plusieurs choses. Je connais des exemples où il peut être bon, mais pas la peine d’en faire une liste, c’est à toi de savoir voir.

Mais il n’y a aucune raison de voir le démon dans cette balise, elle est parfaitement légitime.
Modifié par hibou57 (25 Oct 2011 - 18:21)
haha Smiley smile

C'est bien ce qui me semblait. Non parce que dès que je vais poster ailleurs on me dit que c'était une balise d'un autre temps et qu'il faut arrêtter de l'utiliser. Du coup je suis venu me renseigner la ou il y'a des gens éclairé Smiley smile

Cette balise est donc tout à fait légitime. C'est ce que je voulais savoir Smiley smile
chez les petits nuls comme moi on a parfois l'impression que si c'est trop facile... c'est pas valide ! Smiley bawling

ça fait des semaines que j'essaie de me débarrasser de mes iframes... et là, Smiley eek j'apprends qu'en fait cette gentille balise n'est pas si horrible que cela et qu'elle aurait encore de beaux jours devant elle...

Alors, JE LA GARDE !

ras le bol des includes php et des javascript et des css de la mort alors qu'un simple lien ciblant une iframe suffit à mon bonheur de nul !

Smiley biggrin en fait c'est juste un message général pour dire merci à toutes les tronches en xhtml-css-php-javascript de partager leurs savoirs et d'avoir permis à un mec comme moi de faire un site internet...
Faut pas en abuser non plus, ça ne sert pas à se faire une page avec un iframe pour le header, un pour le footer, un pour le contenu principal, etc.

Par contre, pour insérer une vidéo youtube ou autre en html5, c'est très pratique, de même que pour afficher des infos d'autres sites. Smiley smile

P.S. : pour l'accessibilité on n'oubliera pas de leur donner un title Smiley cligne
Modifié par Patidou (05 Nov 2011 - 11:54)
La balise <object> est très bien pour inclure un fichier, c'est IE qui n'aime pas. Smiley cligne
Modifié par jmlapam (05 Nov 2011 - 13:13)
que quelqu'un d'éclairé me contredise si j'ai tort...

il n'y a pas de balise ni de solution simple et pérenne pour permettre d'ouvrir un lien dans un <div> dans un <object> etc...

donc

<a target="nom de mon iframe" href...

au niveau de la mise en page d'un site c'est pas mal non ?

c'est sûr que tous ceux qui maitrisent parfaitement javascript et php et css (et j'en oublie...) ont peut-être un peu les boules qu'on puisse faire aussi simple Smiley cligne
(c'est pas méchant !!!)

comme c'est dit plus haut, c'est sûr que parfois les petits nuls dont je suis ont parfois tendance à abuser des bonnes choses (et que je te fais des tableaux dans des tableaux et des iframes dans des iframes etc... à un moment faut netoyer un peu c'est sûr Smiley decu Smiley sweatdrop

pour finir : le seul inconvénient de composer un site à base d'iframe, c'est le référencement par les moteurs...
(mais moi de toute façon j'ai un .htpasswd à la racine Smiley lol )
evinrude a écrit :
que quelqu'un d'éclairé me contredise si j'ai tort...

Vas-y, je te couvre.

evinrude a écrit :
il n'y a pas de balise ni de solution simple et pérenne pour permettre d'ouvrir un lien dans un <div> dans un <object> etc...

Certes.

evinrude a écrit :
donc <a target="nom de mon iframe" href...
au niveau de la mise en page d'un site c'est pas mal non ?

Les IFRAME ont une hauteur fixe et ne s'adaptent pas à leur contenu. Elles sont inadaptées à tout contenu long de type article.

evinrude a écrit :
c'est sûr que tous ceux qui maitrisent parfaitement javascript et php et css (et j'en oublie...) ont peut-être un peu les boules qu'on puisse faire aussi simple Smiley cligne

Euh disons que tu peux faire aussi simple avec juste HTML. Ça s'appelle des pages web. Un truc de ouf-malade.

evinrude a écrit :
le seul inconvénient de composer un site à base d'iframe, c'est le référencement par les moteurs...

Et l'accessibilité (si c'est mal fait), et l'ergonomie de merde (tout le temps).

Y a pas à tortiller. Les IFRAMEs sont adaptées à des contenus annexes au contenu principal, par exemple un contenu de type «widget», en particulier lorsque ce contenu est a) de dimensions connues et fixes (image, vidéo) et b) appelé depuis un domaine tiers.

Pour la problématique «je veux pas répéter le code commun à l'interface de mes différentes pages», il y a les différents langages de script (notamment la fonction include() en PHP), ou plus simple encore les Server-Side Includes.
Modifié par fvsch (11 Nov 2011 - 11:06)
une iframe dont la hauteur s'adapte au contenu ?
J'AI !
un petit java script et l'affaire est dans le sac ! (yen a plein le web mais faut qd m^ trouver celui qui fonctionne...)

Smiley bawling reste plus qu'à adapter la taille de la div qui contient l'iframe et pis rapidement on sait plus dans quel body on se trouve ni quelle feuille de style on utilise... les pages frôlent la schizophrénie (et je te parle pas des disputes entre les doctypes)

et puis c'est là qu'une petite voix te murmure à l'oreille "on t'avait bien dit que les iframes c'était pas non plus miraculeux et qu'il fallait pas en abuser Smiley lol Smiley lol









Smiley lol
j'ai rarement galéré autant, mais j'ai !
quoi ?
un script qui redimentionne la hauteur de la frame à son contenu... et qui marche avec IE9 FF7 et CHR... Smiley biggrin
désolé si je fais les questions et les réponses...
bon, si ça interresse c'est

pour le script :

function actu_iframe(){
if(navigator.appName=="Microsoft Internet Explorer" ){
if(document.all) document.all.id_iframe.style.height = document.frames("id_iframe" ).document.body.scrollHeight;
else document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.scrollHeight;
}
else{
document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.offsetHeight+"px";
}
}




et pour l'iframe

<iframe onLoad="actu_iframe();" valign="top" src="mapage.html" id="id_iframe" name="cible" align="middle" frameborder="no" height="800"
scrolling="no" width="659">



reste plus qu'à tester avec un petit <a target="cible" href=....

de quoi améliorer sensiblementl'ergonomie de l'iframe en se débarrassant de ces horribles barre de scroll Smiley lol non ?

ça colle bien avec le titre du post non? Smiley rolleyes
Yop. Attention a l'édition de tes postes (bouton éditer, balise code), ils ont l'oeil les modos Smiley langue

Sinon pour redimensionner une iframe tu n'as pas besoin de faire si compliqué Smiley smile

De tête il me semble que ca donne ca.

<iframe onload='this.style.height=document.documentElement.clientHeight+"px";' style='width:100%;'>
</iframe>


Tu risque de devoir ajuster la taille a cause de ce qu'il y'a plus haut mais ca ne fait pas plus d'une ligne.