cs_romain117
Messages postés53Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention21 juillet 2013
-
30 juin 2009 à 11:58
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
1 juil. 2009 à 11:26
Bonjour à tous!
J'ai une question toute bête je suis sur a propos de la fonction navigator.appName qui renvoit le nom du navigateur utilisé.
Quand je suis sous internet explorer pas de probleme la fonction me renvoie "Microsoft Internet Explorer". Mais quand je suis sous firefox (3.0.10), la fonction me renvoie "Netscape". Est-ce normal ?? Il me semble qu'il s'agit de 2 navigateurs différents !!
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 30 juin 2009 à 14:00
Bonjour,
>>Est-ce normal ??
je ne sais pas, mais c'est comme ça !
d'autant que certains navigateurs permettent de s'identifier
comme étant un autre navigateur !!!!!
je ne sais plus si c'est vrai, mais avec opera, par exemple,
on pouvait faire croire qu'on était avec internet explorer !
tout dépend de ce que tu veux faire.....
et ne pas répondre distinguer les navigateurs ! je viens de t'expliquer
qu'ils étaient capables de se faire passer l'un pour l'autre
( ou lycée de Versailles )
Cordialement [mon Site] [M'écrire] Bul
cs_romain117
Messages postés53Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention21 juillet 20131 30 juin 2009 à 15:20
Je viens de tester userAgent...
Pour internet explorer voici ce qu'il me retourne (notez la présence assez bizarre de "Mozilla") : Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR
2.0.50727)
Pour Firefox : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Ok on trouve bien "Firefox" quand on utilise Firefox (logique, non ? ) mais cela dit l'utilisation de userAgent est plutôt pénible donc à ne pas utiliser d'après moi.
Si on a juste besoin de différencier Internet explorer des autres navigateurs, la meilleure méthode que j'ai trouvée est celle-ci : var ie false; /*@cc_on ie true; @*/
if (ie)
{
//on est sous IE
}
else
{
//on n'est pas sous IE
}
Bul3 il me semble que c'est toi qui a proposé cette méthode dans un de tes posts. Alors merci !!
Pour finir le sujet, appName est à utiliser avec des pincettes !
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 30 juin 2009 à 16:04
d'un coté on teste IE ou pas,
de l'autre on teste si la fonctionnalité existe ou pas
des fonctionnalités existent avec Opera et IE et pas sous FF.
( pour ne citer qu'un exemple )
tester IE ou pas ne sera pas suffisant dans ce cas.
mais bien entendu, ça dépend donc de ce qu'on fait !
cs_romain117
Messages postés53Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention21 juillet 20131 30 juin 2009 à 16:42
En fait mon problème vient des fonctions liées au gestionnaire d'événements que tu utilises et que je ne connais pas.
Dis moi si je comprends bien (j'ai fait quelques recherches ) :
if ( élément.attachEvent) -> si on est sous IE
élément.attachEvent("onclick", siClick); -> a l'événement "onclick" on attribue la fonction "siClick" (pour IE)
else élément.addEventListener("click", siClick, false); -> a l'événement "onclick" on attribue la fonction "siClick" (pour Firefox)
élément doit etre une balise html genre un ou un
(mais je crois qu'avec body ce n'est pas possible).
Pour l'instant je ne vois pas bien l'intérêt mais bon... ca viendra !!
clique sur 'toto' : 1
clique sur 'tata' : 1 puis 2
il est d'ailleurs bidon pour notre discussion, car opera = FF sur ce coup là je pense
mais dans d'autres circonstances...
et il y a d'autres navigateurs !
cs_romain117
Messages postés53Date d'inscriptionlundi 29 juin 2009StatutMembreDernière intervention21 juillet 20131 1 juil. 2009 à 11:01
ok cool ! c'est sur avec un petit exemple c'est mieux
petit erreur d'inattention sans doute : toto renvoie 2.
donc si j'ai bien compris...
document.getElementById("toto").onclick=function() { alert('2') ; }; ->permet d'assigner une nouvelle fonction sur le clic du bouton en écrasant la précédente function siClick(){ alert('2'); } (et ce qui suit) ->->permet d'assigner une nouvelle fonction sur le clic du bouton en n'écrasant pas la précédente(il y a donc 2 fonctions exécutées)
Ben je viens d'apprendre un truc là ! Merci !
En plus je ne savais pas qu'on pouvait mettre des éléments d'un script en dehors d'une fonction (je n'ai peut etre pas suivi assez attentivement les cours de mon prof... )