par
Victor BRITO » 14 sept. 2008, 00:03
Si l'on ne veut pas se contenter d'un DOM niveau 0 (autrement dit, si l'on veut faire du code JavaScript conforme aux standards du DOM et non conflictuel), on peut essayer ce code alternatif :
Code : Tout sélectionner
function fnEvenement ()
{
// Une précaution
if (!document.getElementsByTagName) return;
// On sélectionne tous les éléments img
var aImg = document.getElementsByTagName ('img');
// On parcourt le tableau généré par la méthode
for (var i = 0; i < aImg.length ; i ++)
{
var oImg = aImg[i];
oImg.setAttribute ('onmouseover', 'fonction (param1, param2)');
// On double cet événement de façon à ce qu'il soit également accessible lorsqu'on utilise un moyen de contrôle autre que la souris
oImg.setAttribute ('onfocus', 'fonction (param1, param2)');
// Si jamais IE n'ajoute pas ces événements avec la méthode setAttribute,
// utiliser le bloc de commentaire conditionnel ci-dessous (qui cible IE 7 et versions antérieures)
/*@cc_on
@if (@_jscript_version <= 5.7)
var sImg = '<img src="' + oImg.getAttribute ('src') + '" alt="' + oImg.getAttribute ('alt') + '" onmouseover="fonction (param1, param2)" onfocus="fonction (param1, param2)" />';
oImg.outerHTML = sImg;
@end
@*/
}
}
if (window.addEventListener) window.addEventListener ('load', fnEvenement, false);
else window.attachEvent ('onload', fnEvenement);
Tu enregistres le tout sous un fichier JavaScript externe, que tu appelles au moyen de l'élément script :
Code : Tout sélectionner
<head>
<script type="text/javascript" src="le-javascript-ci-dessus.js"></script>
</head>
Quelques mots à propos des commentaires conditionnels en JavaScript (balisés par /*@cc_on et @*/) : les if, else if et else y sont nommés respectivement @if, @elif et @else, le mot-clé @end étant obligatoire pour fermer une batterie de conditions (à l'instar d'endif; en PHP si l'on n'utilise pas d'accolades quand plusieurs instructions sont indiquées) ; la variable @_jscript_version permet de récupérer la version de JScript (le JavaScript à la sauce IE) utilisée par les différentes versions d'IE (5.6 pour IE 6, 5.7 pour IE 7), ce qui est idéal pour cibler telle ou telle version d'IE ; bien entendu, les navigateurs autres qu'IE traitement ces commentaires conditionnels comme de simples commentaires.
Si l'on ne veut pas se contenter d'un DOM niveau 0 (autrement dit, si l'on veut faire du code JavaScript conforme aux standards du DOM et non conflictuel), on peut essayer ce code alternatif :
[code]function fnEvenement ()
{
// Une précaution
if (!document.getElementsByTagName) return;
// On sélectionne tous les éléments img
var aImg = document.getElementsByTagName ('img');
// On parcourt le tableau généré par la méthode
for (var i = 0; i < aImg.length ; i ++)
{
var oImg = aImg[i];
oImg.setAttribute ('onmouseover', 'fonction (param1, param2)');
// On double cet événement de façon à ce qu'il soit également accessible lorsqu'on utilise un moyen de contrôle autre que la souris
oImg.setAttribute ('onfocus', 'fonction (param1, param2)');
// Si jamais IE n'ajoute pas ces événements avec la méthode setAttribute,
// utiliser le bloc de commentaire conditionnel ci-dessous (qui cible IE 7 et versions antérieures)
/*@cc_on
@if (@_jscript_version <= 5.7)
var sImg = '<img src="' + oImg.getAttribute ('src') + '" alt="' + oImg.getAttribute ('alt') + '" onmouseover="fonction (param1, param2)" onfocus="fonction (param1, param2)" />';
oImg.outerHTML = sImg;
@end
@*/
}
}
if (window.addEventListener) window.addEventListener ('load', fnEvenement, false);
else window.attachEvent ('onload', fnEvenement);[/code]
Tu enregistres le tout sous un fichier JavaScript externe, que tu appelles au moyen de l'élément script :
[code]<head>
<script type="text/javascript" src="le-javascript-ci-dessus.js"></script>
</head>[/code]
Quelques mots à propos des commentaires conditionnels en JavaScript (balisés par /*@cc_on et @*/) : les if, else if et else y sont nommés respectivement @if, @elif et @else, le mot-clé @end étant obligatoire pour fermer une batterie de conditions (à l'instar d'endif; en PHP si l'on n'utilise pas d'accolades quand plusieurs instructions sont indiquées) ; la variable @_jscript_version permet de récupérer la version de JScript (le JavaScript à la sauce IE) utilisée par les différentes versions d'IE (5.6 pour IE 6, 5.7 pour IE 7), ce qui est idéal pour cibler telle ou telle version d'IE ; bien entendu, les navigateurs autres qu'IE traitement ces commentaires conditionnels comme de simples commentaires.