validation XHTML 1.0 Transitional

WRInaute discret
Bonjour,

j'espère poster dans la bonne rubrique :D

j'ai un problème de validation XHTML 1.0 Transitional, en effet après avoir ajouté un bouton Facebook sur mon site il apparait une erreur que je n'arrive pas à résoudre :

Code:
Line 145, Column 228: there is no attribute "share_url" 
…me="fb_share" type="button" share_url="http://www.intoxitation.com/modules/cit…

You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead). 

This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information. 

How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the <embed> element to incorporate flash media in a Web page, see the FAQ item on valid flash.


la ligne incriminé est celle-ci :
Code:
<a class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook&amp;id=<?php echo $id; ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager</a>


Je ne comprends pas très bien l'anglais, j'espère que vous pourrez m'aider,

amicalement,
 
WRInaute accro
Il n'y a pas d'attribut "share_url" sur les <a href>. C'est normal avec facebook, ils ont l'art de fournir des codes qui bousille la validation XHTML :?
 
WRInaute discret
spout a dit:
Il n'y a pas d'attribut "share_url" sur les <a href>. C'est normal avec facebook, ils ont l'art de fournir des codes qui bousille la validation XHTML :?

ils sont gentils eux :evil: , ça veut dire qu'il n'y a pas de solution ou quelqu'un aurait une astuce pour pallier à ce problème ?
 
WRInaute discret
Salut,

Pourquoi pas en passant par Javascript ?
Code:
<script type="text/javascript">
	document.write('<a class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook&amp;id=<?php echo $id; ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager<\/a>');
</script>
 
WRInaute discret
spout a dit:
Essayes en supprimant cet attribut qui fait défaut.
Sinon utiliser un widget style: http://www.addthis.com/
je ne peux pas supprimer cet attribut.
les widgets addthis ne me conviennent pas.

Eric 2A a dit:
Salut,

Pourquoi pas en passant par Javascript ?
Code:
<script type="text/javascript">
document.write('<a class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook&amp;id=<?php echo $id; ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager<\/a>');
</script>
c'était une bonne idée, malheureusement ca ne change pas, le W3C me donne toujours la même erreur sur "share_url"

merci pour vos suggestions, une autre idée ?
 
WRInaute discret
cedric_g, je viens de tester avec le validateur du W3C... Il donne la même erreur. Bizarre.

Stone66, en utilisant unescape (javascript) et rawurlencode (php), c'est valide... même en strict.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
</head>
<body>


<script type="text/javascript">//<![CDATA[
document.write(
    unescape('%3Ca class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook%26amp;id=<?php echo rawurlencode($id); ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager%3C/a%3E')
);   
//]]>
</script>


</body>
</html>
 
WRInaute discret
spout a dit:
Essayes en supprimant cet attribut qui fait défaut.
Sinon utiliser un widget style: http://www.addthis.com/
Eric 2A a dit:
Salut,

Pourquoi pas en passant par Javascript ?
Code:
<script type="text/javascript">
	document.write('<a class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook&amp;id=<?php echo $id; ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager<\/a>');
</script>
Eric 2A a dit:
cedric_g, je viens de tester avec le validateur du W3C... Il donne la même erreur. Bizarre.

Stone66, en utilisant unescape (javascript) et rawurlencode (php), c'est valide... même en strict.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Test</title>
</head>
<body>


<script type="text/javascript">//<![CDATA[
document.write(
    unescape('%3Ca class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook%26amp;id=<?php echo rawurlencode($id); ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager%3C/a%3E')
);   
//]]>
</script>


</body>
</html>

Génial la dernière solution de Eric 2A fonctionne, merci à vous tous d'avoir participer à ce problème qui je pense et j'espère servira à d'autre.

bonne continuation :D

PS: je ne sais pas comment mettre Resolu devant mon titre est-ce possible ?
 
Nouveau WRInaute
Pareil... Même souci que stone66. Mais sur l'un de mes blog l'extrait de code Facebook me créé carrément une Iframe (pas compatible W3C bien sûr), c'est super :)

PS : Merci pour la solution.
 
WRInaute impliqué
Salut,
Par curiosité, est-ce que tout simplement :
Code:
<script type="text/javascript">
<!--
   document.write('<a class="share" name="fb_share" type="button" share_url="http://www.intoxitation.com/modules/citation-accueil-facebook?page=citation-facebook&amp;id=<?php echo $id; ?>" href="https://www.facebook.com/sharer.php" title="Partager cette citation sur facebook">partager<\/a>');
-->
</script>

N'aurait pas fonctionné ? J'ajoute toujours les balises HTML de commentaires avant et après mes javascript personnellement, c'est peut-être dépassé ?
 
WRInaute discret
Re,

Oui Schwarzer Stern, je viens de vérifier avec le code entre commentaires et effectivemment ça passe la validation.

Placer le code entre commentaires est considéré comme dépassé mais... aujourd'hui, nous pouvons nous rendre compte que cela peut être utile.
 
Discussions similaires
Haut