balise modifiées?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !

Modérateur : Asumbaa

Répondre
Tyrian

balise modifiées?

Message par Tyrian » 27 avr. 2005, 10:45

Bonjour, j'ai un bug (mais mineure) étrange et je crains que ça ne vienne de FF.
J'ai du code PHP qui me génère une partie de ma page à travers un XMLHttpRequest. Le code PHP est correctement interprété et renvoyé, j'ai visionné avec un alert javascript pour voir le code tel que renvoyé par le XMLHttpRequest. Hors qd je demande à regarder le code source sous firefox de la partie sélectionnée, il y a des différences notable aux niveaux des fins de balises. Un exemple pour une image:
Code PHP:
echo "<img id='i_nav_previous' alt='image' src='image/nav_previousm.PNG' onclick='zoom_jour(".$_POST["num_ress"].","."\"".$v_precedent."\")'></img>";
Code HTML renvoyé:
<img id='i_nav_previous' alt='image' src='image/nav_previousm.PNG' onclick='zoom_jour(1,"2005-20-04")'></img>
Code HTML vu aprés un "Code source de la sélection":
<img id="i_nav_previous" alt="image" class="nav_img" src="image/nav_previousm.PNG" onclick='zoom_jour(1,"2005-20-04")'>
On peut voir que le </img> a disparu.
PS j'en suis venu à utiliser le </img> car le '/' en fin de balise disparait également. Le Validateur du WC3 veut au moins le '/' en fin de balise.

netfab
Salamandre
Messages : 43
Enregistré le : 06 mars 2005, 13:37

Message par netfab » 27 avr. 2005, 11:21

Bonjour,

Oui, c'est un bug qui existe depuis longtemps sous firefox, l'affichage d'une partie de la source ne se fait pas tout à fait correctement. Mais çà ne veut pas dire que Firefox supprime ces éléments : tu peux le vérifier en visionnant la source complète : tout y sera.

Par contre, la balise de fin </img> n'a jamais existé. c'est donc un / qu'il faut mettre.

Tyrian

Message par Tyrian » 27 avr. 2005, 11:30

Merci :)
J'avais mis ds un premier tps les "/" mais vu que je les retrouvais pas j'ai tenté les </img> un peu en désespoir de cause :p. Enfin ça complique la validation de mon code ça :?

calimo
Animal mythique
Messages : 14118
Enregistré le : 26 déc. 2003, 11:51
Localisation : Le frigo scandinave
Contact :

Message par calimo » 27 avr. 2005, 16:23

Euh... non, l'erreur c'est plutôt de mettre </img> :lol:

Je pense que tu travailles en HTML (text/html envoyé au navigateur) avec un doctype XHTML 1.0. Dans ce cas tu dois respecter les règles de Compatilité HTML.
Cette apendice dit, entre autres :
Inclure un espacement avant le / et >de fin des éléments vides, par exemple <br />, <hr /> et <img src="karen.jpg" alt="Karen" />. Utilisez également une syntaxe minale pour les éléments vides, par exemple <br />, comme syntaxe alternative de <br></br> qui est autorisé par XML, car cela donne des résultats inattendus dans certains agents utilisateurs.
(je mets en gras).

Donc tu dois utiliser <img /> et non pas <img></img> :wink:
Mais même comme ça il sera transformé en <img> parce que je pense que tu utilise le type MIME text/html, donc il est analysé comme du HTML, parce que <img /> est normalement traité comme <img>> en SGML (et que le HTML est du SGML).

Donc tu devrais plutôt t'estimer heureux que Firefox corrige ton erreur :wink:

Edit : j'allais oublier : http://hixie.ch/advocacy/xhtml :wink:
Edit2 : firefox affiche exactement ce qu'il interprète.

Tyrian

Message par Tyrian » 27 avr. 2005, 16:50

Ma deuxième intervention a été mal compris je crois :p. Quand j'ai dit que j'avais mis les "/" dans un premier temps, c'est que c'est la solution que j'avais utilisé avant d'avoir le problème de visualisation (avec les "/" qui n'apparaissaient pas). Là dans le doute et ne sachant pas ce qui se passait j'ai tenté les </img>, en étant à ce moment un peu désespérer. Aprés la réponse obtenu ici je suis revenu au '/'.
Le problème est que j'utilise les javascript pour ne recharger qu'une partie de la page lors d'une communication avec le server. Hors qd je veux valider le HTML local, le validateur ne voit que le cadre (essentiellement des div) de ma page, pas les contenus qui ont été modifié à travers les XMLHttpRequest.
Donc je suis incapable de faire valider ce code directement. J'ai pensé à récupérer le code de ces divs modifiées à travers "code source de la sélection" et apparement c'est cette option qui ne fait pas apparaître les '/'.
PS: je débute ds ce domaine, je me suis formé sur le tas au CSS, javascript, XMLHttpRequest, en 3 semaine (début de mon stage).

calimo
Animal mythique
Messages : 14118
Enregistré le : 26 déc. 2003, 11:51
Localisation : Le frigo scandinave
Contact :

Message par calimo » 27 avr. 2005, 17:02

Oui, c'est parce que Firefox "corrige" lui-même ce petit souci.

Il y a 2 solutions :
  1. Faire du vrai XHTML (envoyé en XML, type MIME application/xhtml+xml)
  2. Faire du HTML.
C'est le problème des solutions intermédiaires :?

martin
Varan
Messages : 1074
Enregistré le : 21 janv. 2004, 16:23
Contact :

Message par martin » 28 avr. 2005, 12:16

Malheureusement non, c'est bien un bug de firefox sur la fonction "Code source de la selection".
J'ai fait un essai en local, un fichier xhtml 1.0 strict, en envoyant un type mime correct (application/xhtml+xml) via php, type mime vérifié avec LiveHttpHeaders. Firefox affiche alors du html et non du html pour le code source d'une selection...

Xanthor
Lézard à collerette
Messages : 280
Enregistré le : 29 juil. 2003, 18:36
Localisation : Fr
Contact :

Message par Xanthor » 28 avr. 2005, 13:03

calimo a écrit :Edit2 : firefox affiche exactement ce qu'il interprète.
Non. Je confirme ce que dit Martin, c'est bien un bug...

calimo
Animal mythique
Messages : 14118
Enregistré le : 26 déc. 2003, 11:51
Localisation : Le frigo scandinave
Contact :

Message par calimo » 28 avr. 2005, 13:45

Ah alors dans ce cas c'est effectivement un peu gênant... mais je doute que Tyrian travaille en XML :wink:

Tyrian

Message par Tyrian » 28 avr. 2005, 13:49

Bonjour,
Pour le prb de faire du XHTML bien propre, je suis d'accord que c'est mieux, mais mon but était de minimiser les chargements. Donc de ne charger que les sections qui sont modifiées. Ces section étant modifiées selon le contenu d'une base de données. Je fais attention à ce que le code renvoyé soit le plus propre possible en le faisant validé (sans tenir compte des erreures du au bug, manifestement ça ne change rien ni sous IE, ni sous FF). Je connais pas d'autre moyen de faire ce que je fait que de passer par les XMLHTTPRequest.
le résultat de ce système étant bluffant niveau rapidité et évite d'avoir à tjrs tout rechargé.
un petit tuto sur les XMLHTTPRequest si ça interesse qq'un, avec des exemple de ce que ça peut donner à la fin. Il y notament gmail qui utilise ce système de manière massive.
http://www.toutjavascript.com/savoir/xm ... quest.php3

martin
Varan
Messages : 1074
Enregistré le : 21 janv. 2004, 16:23
Contact :

Message par martin » 28 avr. 2005, 15:17

Tu peux continuer à utiliser XMLHttpRequest pour rapatrier des portions de xhtml, le bug concerne la fonction du navigateur firefox "Code source de la selection", pas le traitement du xhtml par le navigateur.
C'est pas pratique pour valider, mais tu peux effectivement utiliser un alert javascript, ou afficher dans des balises <pre>, le code que tu reçois.

Bobe
Iguane
Messages : 741
Enregistré le : 28 juil. 2003, 21:29
Localisation : La Rochelle
Contact :

Message par Bobe » 28 avr. 2005, 16:18

tu as prévu une alternative au cas où le javascript n'est pas activé, non géré par le logiciel client ou que celui-ci ne supporte pas l'objet XMLHttpRequest (c'est le cas d'Opera < 8.0) ? À moins que ce ne soit pour un intranet, dans ce cas, c'est pas problématique.
« La vie d’un geek est un combat perpétuel contre l’imperfection »

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités