5568 sujets

Sémantique web et HTML

Pages :
Bonjour,

bon je sais il faut pas utiliser de iframe mais je suis sur un site qui a une régie pub qui ne peux ou ne veux pas nous fournir un code valide xhtml strict

ceci est mon premier essai en xhtml strict merci de votre indulgence Smiley smile

* le site
* le lien pour la validation
* le code qui fait *#%$^

<IFRAME WIDTH="250" HEIGHT="250" SCROLLING="no" FRAMEBORDER="0" MARGINHEIGHT="0" MARGINWIDTH="0" SRC="http://adserver.adtech.de/adiframe|3.0|383|1019046|0|165|ADTECH;target=_blank">
<script type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|383|1019046|0|165|ADTECH;loc=700;target=_blank"></script><noscript><a href="http://adserver.adtech.de/adlink|3.0|383|1019046|0|165|ADTECH;loc=300" target="_blank">
<img src="http://adserver.adtech.de/adserv|3.0|383|1019046|0|165|ADTECH;loc=300" border="0" width="250" height="250" alt="publicite" /></a></noscript></IFRAME>

Modifié par MemoClic (26 Jul 2005 - 08:07)
Salut,
je suis plus très sûr si les iframes sont valides pour le doctype xHTML1.0 Frameset, mais c'est assez probable Smiley cligne

Donc, direction changement de doctype et utilisation d'un doctype adapté.
http://www.w3.org/TR/xhtml1/dtds.html

(Ca semble en effet valide Smiley cligne )

Et aussi, passage en minuscule du balisage et des attributs et extraction des attributs de mise en forme "width, height" etc sauf si c'est valide en FrameSet, à tester.

@+
Bonjour MemoClic

Confusion : ce n'est pas "il ne faut pas utiliser d'iframe, mais comme j'y suis obligé, je fais une page XHTML1.0 Strict invalide à cause de l'iframe" Smiley biggrin

En effet, l'iframe n'existe pas en XHTML1.0 strict, et ta page n'est pas corrigeable en Strict +iframe Smiley cligne

En revanche, ça sera tout à fait valide en XHTML1.0 transitional.
Modifié par Laurent Denis (25 Jul 2005 - 15:46)
arghhhh c'est bon merci Olivier.

j ai modifié mon code comme ceci et elle valide.

<iframe style="width:250px;height:250px;border:0;margin:0" scrolling="no" src="http://adserver.adtech.de/adiframe|3.0|383|1019046|0|165|ADTECH;target=_blank"><script type="text/javascript" src="http://adserver.adtech.de/addyn|3.0|383|1019046|0|165|ADTECH;loc=700;target=_blank"></script><noscript><a href="http://adserver.adtech.de/adlink|3.0|383|1019046|0|165|ADTECH;loc=300" target="_blank"><img src="http://adserver.adtech.de/adserv|3.0|383|1019046|0|165|ADTECH;loc=300" border="0" width="250" height="250" alt="publicite" /></a></noscript></iframe>


le temps de remettre en cache le site et ca sera valide
thanx man Smiley smile

comme quoi ca fait 3 jours que je tourne en rond avec ce truc en rechechant comment remplacer cette satanée balise et le problème etait sous mes yeux Smiley eek
Modifié par MemoClic (25 Jul 2005 - 15:50)
Mais vu qu'il est tout aussi tolérant que le transitionel, ce sera ok pour les iframes aussi non ?

(bon j'avoue, je pourrais aller voir directement la spec plutot que de poser la question Smiley langue )
Laurent Denis a écrit :
Olivier : ce sont les frames qui sont valides en (X)HTML frameset. Pas les iframe Smiley rolleyes


Sûr ?

http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Frameset

Je vois :
la spec a écrit :

<!-- inline subwindow -->

<!ELEMENT iframe %Flow;>
<!ATTLIST iframe
%coreattrs;
longdesc %URI; #IMPLIED
name NMTOKEN #IMPLIED
src %URI; #IMPLIED
frameborder (1|0) "1"
marginwidth %Pixels; #IMPLIED
marginheight %Pixels; #IMPLIED
scrolling (yes|no|auto) "auto"
align %ImgAlign; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
>


Mais je sais pas lire une spec Smiley smile
MDR Smiley clapclap

Moi, je ne sais plus ce que je dis, en effet Smiley eek

Ah... Comme quoi, on n'en fait pas assez, des sites en frameset : on finit par ne plus la connaître, cette DTD !

Cela dit (sans chercher à ergotter, Olivier avait tout à fait raison) : une DTD transitional étant également possible, autant choisir ce format, AMHA.
Laurent Denis a écrit :
MDR Smiley clapclap

Moi, je ne sais plus ce que je dis, en effet Smiley eek

Ah... Comme quoi, on n'en fait pas assez, des sites en frameset : on finit par ne plus la connaître, cette DTD !

Cela dit (sans chercher à ergotter, Olivier avait tout à fait raison) : une DTD transitional étant également possible, autant choisir ce format, AMHA.


Tiens, je savais pas qu'en transitionnel les iframes étaient autorisées !
On en apprend tout les jours !
Donc, oui le transitionnel est peut être tout aussi interessant, enfin c'est au choix...

(au fait, ça n'a rien à faire dans ce salon Smiley langue , je déplace dans le salon HTML)
Modifié par Olivier (25 Jul 2005 - 16:00)
si je comprends bien ceci :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>page avec iframe</title>
    
    </head>
<body>
<iframe></iframe>
</body>
    
</html>


devrait valider, or je viens de tester et ce n'est pas le cas. Le validateur indique que le tag <body> n'est pas autorisé.
Modifié par clb56 (25 Jul 2005 - 16:11)
Nous avons décidement la tête un peu lente aujourd'hui Smiley lol

Il y avait bien quelque-chose qui me gênait tout à l'heure...

Donc, en reprenant tranquillement :

- iframe existe dans les deux DTD framset et transitional

- dans une page frameset, l'élément <body> n'existe pas. Il est remplacé par l'élément <frameset> :

<html>
    <head>
    ...
    </head>
    <frameset>
        ...
        <iframe>...</iframe>
        ...
    </frameset>
</html>


- dans une page transitional, iframe s'utilise avec le code plus classique :

<html>
    <head>
    ...
    </head>
    <body>
        ...
        <iframe>...</iframe>
        ...
    </body>
</html>

Modifié par Laurent Denis (25 Jul 2005 - 16:26)
Désolé mais là je tombe des nues Smiley eek

un iframe dans un jeu de frame ça je n'ai jamais vu.

C'est même contradictoire avec la notion même d'iframe : insérer une frame dans une page "normale".

Question subsidiaire :

quelqu'un sait pourquoi la page de MemoClic est valide xhtml 1.0 strict avec un code source comprenant une iframe ? Smiley cligne
clb56 a écrit :

quelqu'un sait pourquoi la page de MemoClic est valide xhtml 1.0 strict avec un code source comprenant une iframe ? Smiley cligne


Bonne question.
Réponse : parce qu'elle n'est pas validée en XHTML1.0 strict, justement Smiley lol

Je m'explique : la DTD figurant actuellement sur la page http://www.programme-tv.net/ n'est PAS la DTD XHTML1.0 Strict :

Voici ce qu'il y a sur le site :
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Et voici la DTD correcte :
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict[#red]//EN[/#]"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


(Il manque // suivi de la langue de rédaction de la DTD)

Du coup, que se passe-t-il ? Le validateur n'est pas contrariant : on lui demande de vérifier la validité d'un document selon une DTD fictive... Il n'a aucun moyen de vérifier quoi que ce soit, et donne un résultat dénué de sens.

MemoClic : tu corriges ta DTD, svp ? Smiley cligne
Fiou, c'en est une belle tartine de code pour cette simple page Smiley langue

Si tu faisais ce que nous t'indiquons ??

A savoir changer de DTD pour passer à une DTD xHTML1.0 transitional

hmm ? et là, les choses iront beaucoup mieux Smiley smile
Olivier a écrit :
Fiou, c'en est une belle tartine de code pour cette simple page Smiley langue

Si tu faisais ce que nous t'indiquons ??

A savoir changer de DTD pour passer à une DTD xHTML1.0 transitional

hmm ? et là, les choses iront beaucoup mieux Smiley smile

Parce que je suis parti au départ du dev dans l optique de faire un site respectant cette dtd ce que j avais réussi à faire jusqu'à l insertion de cette pub. ... hors mis l incident de déclaration Smiley biggol
Non, mais c'est pas histoire de choisir une DTD parceque "c'est celle là qui me plait pÔpa, achète la moi", c'est histoire de choisir la DTD qui correspond à sa page.

Tu utilises une iframe, il faut passer en transitionnel, c'est comme ça, tu ne pourras pas valider une page en Strict avec une iframe et il n'y a rien d'autre à dire Smiley smile

Le choix d'une DTD, ce n'est pas une question de mode, de goûts personnels, ou quoi que ce soit de ce registre, c'est le choix de ce qui est adapté à son contenu.
MemoClic : tu es exactement dans le cas de figure pour lequel la DTD transitional a été prévue :
- tu souhaites développer en (X)HTML standard
- mais il y a dans ton code une partie que tu ne génères pas toi-même, et que tu ne peux pas faire évoluer librement.

C'est pour permettre à ce type de page de se conformer à une DTD transitoire qu'a été défini le transitional, en admettant :
- les iframe
- les target _blanck
- certaines balises de présentation
- certaines syntaxes

Cela dit, le contenu lui-même de l'iframe sera invalide quelque-soit la DTD, vu le code qu'il contient :

<html>

<head>
<meta http-equiv="cache-control" content="no-cache">
</head>

<body>
<base target=_blank>
<script language=javascript>
document.write("<object classid=\"..." codebase=\"...\" width=\"...\" height=\"...\">\n");
document.write("<param name=\"movie\" value=\"...\">\n");
document.write("<param name=\"quality\" value=\"high\">\n");
document.write("<embed src=\"...\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"...\" height=\"...\"></embed>\n");
document.write("</object>\n");
document.write("\n");
</script>

<noscript>
<a href="...">
<img src="..." border=0 width=250 height=250>
</a>
</noscript>
</body>

</html>


(valeurs simplifiées avec des ...)

Mais c'est une autre histoire, sur laquelle tu ne peux strictement rien Smiley rolleyes
Modifié par Laurent Denis (26 Jul 2005 - 06:25)
Pages :