Eviter la réecriture d'une balise html par le navigateur

Nouveau WRInaute
Les navigateurs on tendance à fermer les balises automatiquement quand ils génèrent une page.
mon problème est que je ne le souhaite pas pour plusieurs raisons.

Y a t'il un moyen d'éviter cela.

ex
<td><form>..........</td>

réecriture navigateur (ce que je ne veux pas)
<td>form>........</form></td>

Merci.
 
WRInaute accro
Ce ne sont pas les navigateurs qui rajoutent des balises manquantes, mais les CMS...

Si c'est ton exemple que tu ne veux pas c'est une horreur ^^. Après un navigateur "tentera" de l'interpréter, mais il ne modifiera pas le code source.
 
WRInaute passionné
les navigateurs ont tendance à modifier à la volée le rendu quand il manque des balises fermantes, je suis curieux également de savoir si un navigateur (hormis links ;) ) qui ne modifie rien du tout existe...
 
Nouveau WRInaute
Si c'est ton exemple que tu ne veux pas c'est une horreur ===> je n''ai pas dis que c'est bien.

Les navigateurs ont tendance à modifier à la volée le rendu quand il manque des balises fermantes ====> C'est ce que je souhaite éviter.

Peux ton leur dire de rien faire :)
 
WRInaute accro
Les navigateurs ne modifient pas le code source "naturellement". il y a peut être des extensions, mais malheureusement, je ne les connais pas. Chez moi les balises manquantes ne sont pas créés. Si tu as une url ça sera plus simple
 
WRInaute passionné
Marie-Aude a dit:
Les navigateurs ne modifient pas le code source "naturellement".

si si il ne modifie pas le code source mais tentent d'afficher les pages en les corrigeant:

Code:
<html><head><title></title></head>
<body>

<img  src="https://www.webrankinfo.com/images/wri/webrankinfo-logo.png"

</body>
</html>

sur tout les navigateurs testés cela affiche bien le logo de wri alors que la balise n'est pas fermée, le code n'étant pas valide il ne devrait pas être affiché...
 
WRInaute accro
Le code non valide est affiché ^^ (heureusement).
On est bien d'accord : pas de modification du code, donc pas de rajout de balise mais une interprétation, qui peut être plus ou moins hasardeuse selon les erreurs (ah les joies du mode quirks).

Cette interprétation est impossible à éviter.

(Cela dit tu es sûr qu'elle n'est pas fermée cette balise ? parce que le validateur ne dit rien...)
 
Nouveau WRInaute
voici un exemple :

le code de base :
Code:
  <div style="width:100%;">          
    <div  style="float:left; width:100%;"><img src="suppliers.gif" border="0" alt="Gestion des fournisseurs" title="Gestion des fournisseurs" width="40" height="40" />      
       <div  style="float:right; text-align:right; width:80%">




======> début du formulaire

<form name="delete_all" <?php echo 'action="' . tep_href_link(FILENAME_SUPPLIERS, 'page=' . $_GET['page'] . '&action=delete_all', 'NONSSL') . '"'; ?> method="post">
<a onclick="$('delete').attr('action', ''); $('form').submit();" class="button"><span><?php echo tep_image_button('button_delete_big.gif', IMAGE_DELETE); ?></span></a>&nbsp;


======> pas de fermeture


      </div>
   </div>
</div>
plus loin dans le code
.........
........
........
</form>

le code généré par le navigateur à l'affichage de la page
Code:
  <div style="width:100%;">          
    <div  style="float:left; width:100%;"><img src="suppliers.gif" border="0" alt="Gestion des fournisseurs" title="Gestion des fournisseurs" width="40" height="40" />      
       <div  style="float:right; text-align:right; width:80%">

=====> DÉBUT DU FORMULAIRE


<form name="delete_all" action="http://......................./suppliers.php?page=1&amp;action=delete_all" method="post">
<a onclick="$('delete').attr('action', ''); $('form').submit();" class="button">
<span>
<img src="button_delete_big.gif" alt="Supprimer" title="Supprimer" border="0">
</span>
</a>
&nbsp;



</form> ================> la fermeture du formulaire généré par le navgateur




       </div>
   </div>
</div>
plus loin dans le code
.........
........
........
</form>
 
WRInaute passionné
Bonjour,

Un navigateur, ne corrige rien, il interprète comme il peut.
Ton exemple avec le logo ne prouve rien.
Ajoute à la suite de l'image un texte non entouré de balise... il ne l'affichera pas, croyant à la continuité de la balise img.
Il modifiera sont interprétation lorsqu'il verra une nouvelle balise, pas avant.

Mais jamais il ne corrigera quoique se soit.

Rod
 
WRInaute accro
En fait il y a une petite nuance a prendre en compte, j'ai constaté sur fofox (ça date pas d'aujourd'hui) que la commande "afficher le code source de la sélection" réaménage quelque peut le code (il ajoute deux trois truc a du code valide comprendre par là que le code affiché n'est pas exactement ce que génère le serveur) Mais en aucun cas il rajoute ou enlève des sauts de lignes ou ne ferme une balise merdique.
En cas d'erreur il ajoute parfois en rouge des trucs qu'il pense avoir "compris"

genre:
<img src="..." alt="..." un peu de texte
donne parfois un truc du genre
<img src="..." alt="..." un="" peu="" de="" texte=""
(de mémoire)
 
WRInaute accro
Le navigateur il essaie de faire ce qu'il peut avec ce que tu lui donnes, qui n'est pas du HTML. Un élément qui commence à l'intérieur d'un autre se finit aussi forcément à l'intérieur, HTML est purement hierarchique (un élément est forcément entièrement contenu dans un autre). Un passage par un validateur HTML te le dira sans équivoque. Donc si tu ne finis pas l'élément de façon explicite, le navigateur va le faire pour toi, il n'a pas le choix.

Dans ton cas, il faut juste que tu commences le <form> avant tes divs, et voilà. Note qu'en plus de la hiérarchie, il y a aussi des règles que ce que tu as le droit de mettre dans quels éléments, donc toutes les hiérarchies ne sont pas forcément possibles.

Il serait temps d'aller lire les spécifications de HTML...

Jacques.
 
Discussions similaires
Haut