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

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

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

Message 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...
Dernière modification par jv2759 le 13 avr. 2005, 20:38, modifié 1 fois.
Inscrit sur la liste des abonner absent...
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message 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';
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Avatar de l’utilisateur
pascal
Administrateur
Messages : 1515
Inscription : 28 juil. 2003, 15:13

Message par pascal »

hummmmm, déjà ça devrait être onmouseover sans majuscule car on fait du xhtml, donc les attributs sont en minuscules.
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message 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...
Inscrit sur la liste des abonner absent...
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message 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]
jv2759
Tyrannosaurus Rex
Messages : 4161
Inscription : 12 févr. 2004, 14:29

Message 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...
Inscrit sur la liste des abonner absent...
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité