Validation W3C d'un javascript ou comment lui masquer?

Nouveau WRInaute
Bonsoir

J'ai ce javascript qui ne passe pas le validateur ( balise <a> pas ouverte )
Code:
<?php 
function MailURL($email,$name)
{ 
$tag1 = '<SCRIPT TYPE="text/javascript">';
$tag2 = '</SCRIPT>'; 
$js = "<A HREF=\"m'+'ailto:".str_replace('@',"'+'&#'+'64;'+'",$email).'">'; 
return $tag1."document.write('$js');".$tag2.htmlspecialchars($name).$tag1."document.write('<\/A>');". $tag2; 
}
?>

Il marche mais y aurait-il une erreur ?

J'ai regardé plusieurs forums où l'on trouve le même problème mais pas trouvé de solution qui fonctionne.
Je sais qu'on peut masquer au W3C ce qu'il y a entre les balises <script> mais je n'y parvient pas.

Si vous aviez une idée ????????

Bonne nuit
 
WRInaute discret
Bonjour,

Et si vous mettiez toutes vos fontions JavaScript dans un fichier .js unique qui serait appelé dans le header de vos pages (principe identique au CSS) ?

Bien à vous.
 
WRInaute occasionnel
srappaille a dit:
Bonjour,

Et si vous mettiez toutes vos fontions JavaScript dans un fichier .js unique qui serait appelé dans le header de vos pages (principe identique au CSS) ?

Bien à vous.
Tout à fait exact.

Par contre, si la Validation n'est qu'un But et non un Moyen, il y'a des questions à se poser.
Le but n'est pas de valider, mais de faire des sites conformes. Ce n'est pas en "cachant ce qui n'est pas conforme" qu'on arrange les choses :(
 
WRInaute accro
y a pas de js dans une page xhtml valide :) , ouste, dans un fichier .js séparé

sinon, pour masquer, rajoute <!-- et //--> avant/apres tes balises <script>
 
Nouveau WRInaute
Bonsoir

Mon script est un javascript enregistré en .php pour masquer les adresses mail aux spammeurs. Si je le place dans le head comme les feuilles de style, il ne sera pas masqué aux robots spammeurs.

Le cacher au W3C était mon dernier recours mais ne me plait pas.

Par contre en allant sur java script lint, on trouve une erreur dans le script au niveau de $tag1

Code:
1 <?php 2 function MailURL($email,$name) 3 { 4 $tag1 = '<SCRIPT TYPE="text/javascript">';
^ SyntaxError: unterminated string literal
5 $tag2 = '</SCRIPT>'; 6 $js = "<A HREF=\"m'+'ailto:".str_replace('@',"'+'&#'+'64;'+'",$email).'">'; 7 return $tag1."document.write('$js');".$tag2.htmlspecialchars($name).$tag1."document.write('<\/A>');". $tag2; 8 } 9 ?> 10

Mais je ne vois pas laquelle. Si vous trouvez merci d'avance.

@++++
 
Nouveau WRInaute
Bonsoir

J'ai eu la solution de mon problème grace au site http://toutjavascript.com

Le bon code pour ceux que ça intéresse :

Code:
<?php
function MailURL($email,$name)
{
$tag1 = '<script type="text/javascript">';
$tag2 = '</script>';
$js = "<'+'a href=\"m'+'ailto:".str_replace('@','@',$email).'">';
return $tag1."document.write('$js');".$tag2.htmlspecialchars($name).$tag1."document.write('<'+'/a>');". $tag2;
}
?>

Merci pour votre aide et bon WE
 
Discussions similaires
Haut