Validation W3C d'un javascript ou comment lui masquer?

clicdecouvre

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
 

srappaille

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.
 

SIBELIUS

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 :(
 

e-kiwi

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>
 

clicdecouvre

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.

@++++
 

clicdecouvre

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