52 votes

Pourquoi les développeurs détestent les iframes ?

Duplicata possible :
Les iframes sont-ils considérés comme une "mauvaise pratique" ?

En travaillant avec des développeurs web, j'entends toujours de leur part que l'utilisation des iframes est quelque chose que nous devons éviter autant que possible, et certains disent que c'est quelque chose de mauvais, d'ennuyeux et qui crée beaucoup de problèmes.

De même, lorsque j'ai dit un jour à mon ancien patron, qui n'était pas un développeur, que j'allais utiliser une iframe, il m'a regardé comme un mauvais développeur :)

Ce que je veux savoir, c'est si les iframes ont une très mauvaise histoire avec le développement web ?

Est-ce un désastre ?

Dans certains cas, je vois qu'il est indispensable d'utiliser des iframes, est-ce que dire cela signifie que je suis un mauvais développeur ?

Ou tout cela parce qu'il est difficile d'y faire face en raison de certains problèmes de sécurité auxquels nous devons faire attention pendant le développement ?

Veuillez énumérer vos points si vous le détestez aussi ou corrigez-moi si je pense de travers.

60voto

Christoph Points 64389

Les iframes peuvent avoir les mêmes problèmes que les cadres et l'utilisation inconsidérée des XMLHttpRequest : Ils brisent le paradigme d'un document par URL, qui est essentiel au bon fonctionnement du web (pensez aux signets, aux liens profonds, aux moteurs de recherche, ...).

Si vous créez une application web, utilisez la technique que vous voulez (y compris les cadres, le flash, les applets, $quelque chose). Si vous créez une page Web d'information, contentez-vous de HTML sans cadre, de CSS et de JavaScripts discrets et gardez à l'esprit que la page doit être utilisable même si les scripts sont désactivés.

20voto

Emil H Points 24062

Comme Nosredna l'a dit, c'est probablement parce que les gens les confondent avec les cadres, et il y a en fait beaucoup d'arguments valables contre les cadres. Certains d'entre eux ne sont pas applicables aux iframes, mais d'autres le sont.

Le problème le plus frappant est probablement celui des liens profonds : Il est vrai que les iframes en souffrent dans une moindre mesure que les cadres, mais si vous permettez à vos utilisateurs de naviguer entre différentes pages dans l'iframe, cela posera un problème. Il y a aussi quelques problèmes de convivialité auxquels vous devrez faire attention. Le problème le plus courant est celui des doubles barres de défilement, que je trouve personnellement très ennuyeux.

J'ai tendance à éviter les iframes, principalement parce que je trouve que c'est une solution peu élégante. J'ai découvert que lorsque je m'assois et que je réfléchis, il y a presque toujours une meilleure solution. Malgré cela, je crois aussi qu'elles ont leur place. C'est le "goto" du monde du web : Ce n'est pas parce qu'il a été mal utilisé par le passé que l'on s'accorde à dire qu'il ne devrait jamais être utilisé. Ce n'est pas vraiment le cas ici, mais je pense que vous devriez réfléchir à deux fois avant d'utiliser des iframes.

15voto

marcc Points 8513

Je voulais ajouter que la plupart du temps Les iframes n'aident pas non plus au référencement d'une page. Googlebot ne met pas le contenu d'une iframe sur la page.

8voto

Nosredna Points 33670

Je pense que les gens confondent les iframes avec des cadres HTML et les images sont assez universellement méprisé.

Les gens utilisent les iframes tout le temps sans même s'en rendre compte. Si je me souviens bien, TinyMCE utilise des iFrames.

8voto

ars Points 35803

La raison est la sécurité - les attaques par injection d'iframe étaient assez courantes. Voir cette page d'Ars Technica pour une description :

http://arstechnica.com/security/news/2008/03/ongoing-iframe-attack-proving-difficult-to-kill.ars

et une autre page qui résume certaines vulnérabilités (je ne sais pas combien d'entre elles sont valables pour la génération actuelle de navigateurs, mais l'article n'est pas si vieux) :

http://www.thespanner.co.uk/2007/10/24/iframes-security-summary/

D'autre part, ils permettent la communication entre domaines et sont utilisés assez couramment par les applications web "ajaxy" :

http://softwareas.com/cross-domain-communication-with-iframes

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