:---------------------------------------------------:
| Contrôler les Evênements sur les Eléments |
:---------------------------------------------------:
pour expliquer, rien ne vaut un exemple :
l'évênement onload : lorsque l'élément est chargé
¯¯¯¯¯¯¯¯¯¯ la balise : body
sera déclenché lorsque la page HTML aura été chargée.
_________________
1° dans la balise
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
<body onload="des instructions javascript;">
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
par exemple : <head>
¯¯¯¯¯¯¯¯¯¯¯ <script type="text/javascript">
var tmp;
function trt1(p1)
{ tmp=1;
alert(p1); }
function trt2(p2)
{ tmp=2;
alert(p2); }
</script>
</head>
<body onload=" trt1('test');
tmp=0;
alert('page chargée');
trt2('exemple'); ">
</body>
ce "n'est plus très à la mode" de mettre la gestion
des évênements dans les balises.
on préfère séparer le html du javascript
( et du css, mais ici, on s'en balance )
________________________
2° création en dynamique
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
window.onload=fonction;
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
par exemple : <body>
<script type="text/javascript">
function init()
{ trt1('test');
tmp=0;
alert('page chargée');
trt2('exemple');
}
window.onload=init;
</script>
</body>
inconvénient
ne pas pouvoir passer de paramètres,
pour mettre plusieurs instructions, il faut passer par
une fonction intermédiaire.
il "vaut donc mieux" faire :
window.onload=function() { des instructions javascript; };
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
par exemple : <body>
¯¯¯¯¯¯¯¯¯¯¯ <script type="text/javascript">
window.onload=function()
{ trt1('test');
tmp=0;
alert('page chargée');
trt2('exemple');
}
</body>
inconvénient
on écrase les fonctions qui pourraient avoir été définies
au préalable pour cet évênement, dans cette balise.
il "vaut donc mieux" faire :
_____________________
3° ajout en dynamique
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
attachEvent ou addEventListener ( différence IE / FF et consors )
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
par exemple : <body onload="alert('sera conservé');">
¯¯¯¯¯¯¯¯¯¯¯ <script type="text/javascript">
if ( window.attachEvent )
window.attachEvent
( "onload", init() );
else
window.addEventListener
( "load", init, false );
</script>
</body>
et/ou bien entendu ( ? )
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
<script type="text/javascript">
if ( window.attachEvent )
window.attachEvent ( "onload",
function()
{ trt1('test');
tmp=0;
alert('page chargée');
trt2('exemple');
}
);
else window.addEventListener ( "load",
function()
{ trt1('test');
tmp=0;
alert('page chargée');
trt2('exemple');
},
false
);
</script>
inconvénient
pour donner plusieurs instructions, des paramètres...
soit on doit faire appel à une fonction
soit on répète les instructions puisque différences
IE / FF et consors
à vous de choisir ce qui, dans votre contexte,
pour une application donnée... convient le moins mal ;o)
ça ne change rien si on met le JavaScript dans un fichier .js