Page 1 sur 1

[réglé]<area> et onMouseover="" non valide

Publié : 13 avr. 2005, 18:32
par jv2759
Je voudrait ajouter un evenement sur une zone
<div class="centre">
<map name="zone" id="zone">
<area shape="rect" coords="200,100,780,460" href="./acceuilxalys.html" alt="Xalys Design" onMouseover="javascript:evidence('underline')" onMouseout="javascript:evidence('none')" />
</map>
<img class="imageCentrale" src="index.jpg" alt="Xalys Design" title="Xalys Design" usemap="#zone" />
</div>
Cela marche tres bien, mais le probléme c'est que cela n'est pas valider il ne reconnais pas le onMouseover...

En regardant la dtd officiel j'ai trouver ceci :

http://www.la-grange.net/w3c/xhtml1/DTD ... strict.dtd
<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
<!ATTLIST map
%i18n;
%events;
id ID #REQUIRED
class CDATA #IMPLIED
style %StyleSheet; #IMPLIED
title %Text; #IMPLIED
name NMTOKEN #IMPLIED
>

<!ELEMENT area EMPTY>
<!ATTLIST area
%attrs;
shape %Shape; "rect"
coords %Coords; #IMPLIED
href %URI; #IMPLIED
nohref (nohref) #IMPLIED
alt %Text; #REQUIRED
tabindex %Number; #IMPLIED
accesskey %Character; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED
>
Donc je pourais mettre les onMouse sur le map mais pas area ce que je trouve plus que bizard... Cela marche toujours, mais ce n'est toujours pas valide...

Si qq'un avait une idée pour rendre valide cela car je peux l'utiliser, mais bon ce n'est pas valides et cela m'embete un peux...

Publié : 13 avr. 2005, 18:55
par Bobe
Le mieux, c'est d'enregistrer ton évènement en javascript.

Code : Tout sélectionner

tonArea.onmouseover = evidence;
tonArea.onmouseout   = evidence;
Et refaire le début de ta fonction 'evidence':

Code : Tout sélectionner

function evidence(evt) {
    if( !evt ) evt = window.event;
    var s = ( evt.type == 'mouseover' ) ? 'underline' : 'none';

Publié : 13 avr. 2005, 19:57
par pascal
hummmmm, déjà ça devrait être onmouseover sans majuscule car on fait du xhtml, donc les attributs sont en minuscules.

Publié : 13 avr. 2005, 20:38
par jv2759
pascal a écrit :hummmmm, déjà ça devrait être onmouseover sans majuscule car on fait du xhtml, donc les attributs sont en minuscules.
C'est évident bien sur... J'aurais même du m'en douter...

Merci...

Publié : 13 avr. 2005, 21:25
par calimo
[HS]
Je n'ai jamais compris pourquoi ces gestionnaires d'évènements étaient autorisés en strict... c'est pourtant un magnifique exemple de non-séparation du contenu et du reste...
Quelqu'un sait pourquoi ? (Ou du moins a une piste ?)
[/HS]

Publié : 13 avr. 2005, 22:20
par jv2759
moi j'en connais au moins une, c'est que l'enregistrement d'evenement à un gros defaut, c'est qu'il ne permet pas de passer une valeur en parametre...

De plus je ne trouve pas cela absurde, car un evenement et aussi un parametre d'une balise. Un peux comme class qui permet de définir des type pour l'affichage... Par contre si la déclaration de l'event ne me gene pas, c'est à condition que l'on ni met pas tout le code, mais juste une référence vers le code...