Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Validateur W3C - Erreur javascript

33 réponses
Avatar
Jean Le Brun
Bonjour à toutes et à tous,

Je suis en train de valider la trentaine de pages d'un site perso
http://www.cyranorion.fr/eta_sam/
et une seule d'entre elles (gougle.html) me pose problème.
Comme son nom le suggère elle est censée afficher une carte de France
de Google Maps agrémentée de repères géographiques.
Cette page fonctionne parfaitement bien sous IE et FireFox mais le
validateur du W3C y voit pas mal d'erreurs et en particulier les deux
suivantes :

1 -
line 50 column 88 - Erreur: end tag for element "B" which is not open

dans la ligne :
GEvent.addListener(marker,"click", function() { var myHtml =
"<b>" + etab + "</b>"+"<br />" + info; map.openInfoWindowHtml(latlng,
myHtml); });

2 -
line 54 column 86 - Erreur: end tag for element "A" which is not open

dans la ligne :
map.addOverlay(createMarker(point, 1, "Gérard Denjean", "<a
href=#1>Détails</a>"));


Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.
J'ai essayé d'utiliser la balise :
//<![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxx//]]> pour "encapsuler" les
paramètres qui posent problème mais ne suis arrivé à rien de bon.

Comme en plus le validateur ne voit pas la balise de fermeture
(pourtant bien présente) d'une "table", je soupçonne un coup fourré
situé ailleurs ... mais où ?

J'ai trouvé une foule de messages approchants, du style conflit html
xml et utilisation de CDATA, mais aucun identique au mien.

Quelqu'un a-t-il sur ce forum déjà vu un cas analogue ?

Merci de m'avoir lu.
Cordialement,
jean
--

10 réponses

1 2 3 4
Avatar
Olivier Miakinen
Bonjour,

Le 12/02/2010 18:14, Jean Le Brun a écrit :

[...]

1 -
line 50 column 88 - Erreur: end tag for element "B" which is not open

dans la ligne :
GEvent.addListener(marker,"click", function() { var myHtml > "<b>" + etab + "</b>"+"<br />" + info; map.openInfoWindowHtml(latlng,
myHtml); });



C'est à cause du </b>, que tu dois écrire </b> si tu inclus le
JavaScript directement dans le HTML. Le mieux serait de mettre tout
ton code JavaScript dans un fichier séparé :
<script src="js/gougle.js" type="text/javascript"></script>


2 -
line 54 column 86 - Erreur: end tag for element "A" which is not open

dans la ligne :
map.addOverlay(createMarker(point, 1, "Gérard Denjean", "<a
href=#1>Détails</a>"));



Idem avec </a>.

Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.
J'ai essayé d'utiliser la balise :
//<![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxx//]]> pour "encapsuler" les
paramètres qui posent problème mais ne suis arrivé à rien de bon.



Beurk ! La syntaxe XHTML serait une raison supplémentaire pour tout
mettre dans un fichier séparé. De toute façon, si ta page gougle (que
je n'ai pas trouvée) est comme ta page d'accueil, c'est du HTML 4.01
Transitional (quand est-ce que tu passes au Strict ? ;-))

Quelqu'un a-t-il sur ce forum déjà vu un cas analogue ?



Oui, il me semble que c'est le B.-A.-BA du JavaScript dans du HTML...
:-)

Cordialement,
--
Olivier Miakinen
Avatar
Olivier Miakinen
Le 12/02/2010 19:41, je répondais à Jean Le Brun :

Quelqu'un a-t-il sur ce forum déjà vu un cas analogue ?



Oui, il me semble que c'est le B.-A.-BA du JavaScript dans du HTML...
:-)



J'ai oublié de donner le lien vers la norme expliquant le pourquoi du
comment :
<http://www.la-grange.net/w3c/html4.01/appendix/notes.html#h-B.3.2.1>

Mais encore une fois, la seule façon propre de procéder consiste à
sortir du document HTML tout ce qui n'est pas du HTML, en particulier
les CSS (à mettre dans un fichier externe .css) et le JavaScript (à
mettre dans un fichier externe .js).
Avatar
SAM
Le 2/12/10 6:14 PM, Jean Le Brun a écrit :
Bonjour à toutes et à tous,

Je suis en train de valider la trentaine de pages d'un site perso
http://www.cyranorion.fr/eta_sam/
et une seule d'entre elles (gougle.html) me pose problème.
Cette page fonctionne parfaitement bien sous IE et FireFox mais le
validateur du W3C y voit pas mal d'erreurs et en particulier les deux
suivantes :



Quand on fait écrire des balises par le JavaScript :
- ou bien on écrit : &lt; à la place de <

map.addOverlay(createMarker(point, 1, "Gérard Denjean",
"&lt;a href=#1>Détails&lt;/a>"));

- ou bien on échappe le / de la balise fermante

map.addOverlay(createMarker(point, 1, "Gérard Denjean",
"<a href=#1>Détails</a>"));

GEvent.addListener(marker, "click", function() {
var myHtml = "<b>" + etab + "</b>"+"<br />" + info;
map.openInfoWindowHtml(latlng,myHtml);
}
);


Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.



Oui, c'est en général là que ça enquiquine (le javascript en particulier)

J'ai essayé d'utiliser la balise :
//<![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxx//]]> pour "encapsuler" les
paramètres qui posent problème mais ne suis arrivé à rien de bon.



Oui ... bon ... j'ai idée que cet "encapsulage"
n'est permis que dans les fichiers en Xhtml

Comme en plus le validateur ne voit pas la balise de fermeture
(pourtant bien présente) d'une "table", je soupçonne un coup fourré
situé ailleurs ... mais où ?



Balise mal placée ? </table></tfoot>

Des truc-bazars éparpillés entre une fermante et une ouvrante ?

</td>
blabla
<td>

</tr> blabla <tr>

On a 2 tables imbriquées et seule celle intérieure est fermée;
ligne 97 :

<!--- Affichage des noms devant la carte -->
<TABLE cellpadding="5" cellspacing="5" border="0" width="100%">
<tr>
<td align="justify" valign="top" class="subtitle">
<table border="1"


Si la fermeture des TR TD ou TH est optionnelle
celle des TABLE ne l'est pas


--
sm
Avatar
SAM
Le 2/12/10 7:41 PM, Olivier Miakinen a écrit :

si ta page gougle (que je n'ai pas trouvée)



<http://www.cyranorion.fr/eta_sam/pages/gougle.html>
Bien sûr ! :-)

est comme ta page d'accueil, c'est du HTML 4.01
Transitional (quand est-ce que tu passes au Strict ? ;-))



Hou la la !
Faut pas déc... non plus !
à 102ans se lancer dans le html en 2007 c'est déjà pas mal non ?

Quelqu'un a-t-il sur ce forum déjà vu un cas analogue ?



Oui, il me semble que c'est le B.-A.-BA du JavaScript dans du HTML...
:-)



c'est à dire que ...
... ça a l'air pondu par google
(en tous cas je ne reconnais pas le style de la prose de Jean)

Fodra p't'êt' leur dire ?

--
sm
Avatar
Sergio
SAM a écrit :

Je suis en train de valider la trentaine de pages d'un site perso
http://www.cyranorion.fr/eta_sam/
et une seule d'entre elles (gougle.html) me pose problème.
Cette page fonctionne parfaitement bien sous IE et FireFox mais le
validateur du W3C y voit pas mal d'erreurs et en particulier les deux
suivantes :



Quand on fait écrire des balises par le JavaScript :
- ou bien on écrit : &lt; à la place de <

map.addOverlay(createMarker(point, 1, "Gérard Denjean",
"&lt;a href=#1>Détails&lt;/a>"));

- ou bien on échappe le / de la balise fermante

map.addOverlay(createMarker(point, 1, "Gérard Denjean",
"<a href=#1>Détails</a>"));

GEvent.addListener(marker, "click", function() {
var myHtml = "<b>" + etab + "</b>"+"<br />" + info;
map.openInfoWindowHtml(latlng,myHtml);
}
);


Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.





Disons que dès qu'il y a un soupçon de javascript, le validateur se vautre lamentablement. On peut tomber sur des cas plus
compliqués, du genre une balise qui est ouverte par une fonction, générée en fermeture par une autre et toutes les variantes.

S'il se contentait d'ignorer tout ce qu'il y a entre <script> et </script>, ce serait un bon début !
Quant à mettre le js en extérieur, quand il n'y a qu'un bout de code, c'est vraiment pas la peine...

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Avatar
Jean Le Brun
Le Sat, 13 Feb 2010 09:07:22 +0100, Sergio
écrit:


Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.





Disons que dès qu'il y a un soupçon de javascript, le validateur se vautre lamentablement. On peut tomber sur des cas plus
compliqués, du genre une balise qui est ouverte par une fonction, générée en fermeture par une autre et toutes les variantes.

S'il se contentait d'ignorer tout ce qu'il y a entre <script> et </script>, ce serait un bon début !
Quant à mettre le js en extérieur, quand il n'y a qu'un bout de code, c'est vraiment pas la peine...



Je crois que grâce à vous trois, Olivier, SAM et Serge, j'ai enfin
pigé, à travers vos explications et les liens fournis vers des docs,
ce qui me tracassait depuis plusieurs jours : les règles d'imbrication
de balises html et de scripts, que j'ignorais totalement il y a encore
trois jours !!
C'est vrai que je ne suis qu'un vieux "jeune néophyte" et que je me
débrouille avec les moyens du bord ;o)

Jusqu'à il y a quelques mois cette carte de France, avec des repères
géographiques, fonctionnait via Nomao qui a arrêté ce service.

J'ai donc cherché une procédure de remplacement sur Google Maps.
En réponse, j'ai eu la surprise d'être contacté, non par Google Maps,
mais par Freddy Stievenart qui m'envoyait un script ne permettant
d'afficher qu'une carte sans repères.
J'ai échangé quelques courriers avec lui et il m'a duement autorisé à
"pomper", sur l'un de ses sites, le bout de code incriminé.

J'ai eu beaucoup de problèmes avec ce site "eta" et j'ai dû faire
faire à mes piètres connaissances en html et javascript un énorme
bond en avant spécialement suite à l'intervention décisive de SAM, il
y a deux mois.

En conclusion et pour la petite histoire, j'ai pu faire valider par le
W3C, ce matin, ma "moulinette Gougle" ;o)

Je vous dois donc un très grand merci à tous les trois.
J'y joins ceux de mes vieux copains septuagénaires bien heureux
d'avoir leur site internet à jour.

Amitiés et à+ peut-être,
Jean Le Brun
--
Avatar
B.M.
Jean Le Brun a écrit :
Le Sat, 13 Feb 2010 09:07:22 +0100, Sergio
écrit:


Dans les deux cas, qu'il s'agisse de la balise <b> ou de la balise
<a>, il n'en détecte que la fermeture.




Disons que dès qu'il y a un soupçon de javascript, le validateur se vautre lamentablement. On peut tomber sur des cas plus
compliqués, du genre une balise qui est ouverte par une fonction, générée en fermeture par une autre et toutes les variantes.

S'il se contentait d'ignorer tout ce qu'il y a entre <script> et </script>, ce serait un bon début !
Quant à mettre le js en extérieur, quand il n'y a qu'un bout de code, c'est vraiment pas la peine...



Je crois que grâce à vous trois, Olivier, SAM et Serge, j'ai enfin
pigé, à travers vos explications et les liens fournis vers des docs,
ce qui me tracassait depuis plusieurs jours : les règles d'imbrication
de balises html et de scripts, que j'ignorais totalement il y a encore
trois jours !!
C'est vrai que je ne suis qu'un vieux "jeune néophyte" et que je me
débrouille avec les moyens du bord ;o)

Jusqu'à il y a quelques mois cette carte de France, avec des repères
géographiques, fonctionnait via Nomao qui a arrêté ce service.

J'ai donc cherché une procédure de remplacement sur Google Maps.
En réponse, j'ai eu la surprise d'être contacté, non par Google Maps,
mais par Freddy Stievenart qui m'envoyait un script ne permettant
d'afficher qu'une carte sans repères.
J'ai échangé quelques courriers avec lui et il m'a duement autorisé à
"pomper", sur l'un de ses sites, le bout de code incriminé.

J'ai eu beaucoup de problèmes avec ce site "eta" et j'ai dû faire
faire à mes piètres connaissances en html et javascript un énorme
bond en avant spécialement suite à l'intervention décisive de SAM, il
y a deux mois.

En conclusion et pour la petite histoire, j'ai pu faire valider par le
W3C, ce matin, ma "moulinette Gougle" ;o)

Je vous dois donc un très grand merci à tous les trois.
J'y joins ceux de mes vieux copains septuagénaires bien heureux
d'avoir leur site internet à jour.

Amitiés et à+ peut-être,
Jean Le Brun



Bonjour,
Avec toutes ces adresses email en clair votre site est un bonheur pour
les robots spammeurs.
--
B. M.
Avatar
Jean Le Brun
Le Sat, 13 Feb 2010 13:02:36 +0100, "B.M." écrit:

Bonsoir,

Avec toutes ces adresses email en clair votre site est un bonheur pour
les robots spammeurs.



Je le sais bien et c'est un de mes "drames".
Sauf de les supprimer carrément, existe-t-il une solution ?

En tapant le prénom de ma petite fille dans Google on voit apparaître
sa photo ... et le nom du site en clair !!!
J'ai bien mis des : <meta name="robots" content="index,nofollow">
mais j'ai des doutes sur l'efficacité ;o(

Je suis preneur de tout conseils à ce sujet.
Merci de m'avoir mis ce mot.
Cordialement,
jean
--
Avatar
B.M.
Jean Le Brun a écrit :
Le Sat, 13 Feb 2010 13:02:36 +0100, "B.M." écrit:

Bonsoir,

Avec toutes ces adresses email en clair votre site est un bonheur pour
les robots spammeurs.



Je le sais bien et c'est un de mes "drames".
Sauf de les supprimer carrément, existe-t-il une solution ?

En tapant le prénom de ma petite fille dans Google on voit apparaître
sa photo ... et le nom du site en clair !!!
J'ai bien mis des : <meta name="robots" content="index,nofollow">
mais j'ai des doutes sur l'efficacité ;o(

Je suis preneur de tout conseils à ce sujet.
Merci de m'avoir mis ce mot.
Cordialement,
jean



Pour la balise meta robots si vous mettez index la page est indexée et
se retrouve sur google. Si vous ne voulez pas qu'elle le soit c'est
noindex ou un fichier robots à la racine du site :
http://www.google.com/support/webmasters/bin/answer.py?answer6449.

Pour les adresses email il y a différentes solutions dont celle-ci :
http://aspirine.org/emailcode.php
Ca, c'est pour le lien mailto, si vous souhaitez que l'adresse elle même
soit lisible par vos visiteurs, écrivez la sur une image, fort
heureusement les robots ne savent pas encore lire les images.
--
B. M.
Avatar
Jean Le Brun
Le Sun, 14 Feb 2010 02:23:51 +0100, "B.M." écrit:

Bonsoir et merci pour votre réponse,

Pour la balise meta robots si vous mettez index la page est indexée et
se retrouve sur google. Si vous ne voulez pas qu'elle le soit c'est
noindex ou un fichier robots à la racine du site :
http://www.google.com/support/webmasters/bin/answer.py?answer6449.



Merci pour ce lien; j'ai ainsi appris des "trucs" inconnus, par
exemple robots.txt dont je connaissais le nom mais pas compris le
principe de fonctionnement.
Pour le noindex, je savais mais (cruel dilemme ;o), cela signifie
aussi ne plus être référencé du tout. Or nous sommes des anciens d'une
école et nous comptons sur ce site pour récupérer quelques copains de
plus tombant "par hasard" sur le site (3 ou 4 nous ont ainsi rejoint)

Pour les adresses email il y a différentes solutions dont celle-ci :
http://aspirine.org/emailcode.php
Ca, c'est pour le lien mailto, si vous souhaitez que l'adresse elle même
soit lisible par vos visiteurs, écrivez la sur une image, fort
heureusement les robots ne savent pas encore lire les images.



Là, je ne suis plus sûr d'avoir bien compris :
après consultation du dernier site conseillé et en complet néophyte
j'étais arrivé à la conclusion que ce codage du mailto :
- interdisait l'interception d'une adresse mél par les robots,
- permettait malgré tout au visiteur d'au moins pouvoir lire cette
adresse.

Votre dernière phrase me suggère que ... je n'ai rien compris ;o)
Je vais donc faire quelques tests pour mieux piger.

Par contre, l'idée de "camoufler" une donnée confidentielle dans une
image me semble très astucieuse et je sens que je vais l'adopter.
Merci beaucoup pour cela aussi.

Pensez-vous qu'un robot saurait aller "pêcher" une adresse (ou toute
autre donnée) dans un document pdf ?

Très cordialement,
jean
--
1 2 3 4