Je voudrais vous proposer un mini-concours. Il n'y a strictement rien à
gagner, sinon mon estime personnelle...
Voici le challenge. Il s'agit d'initialiser une variable avec la valeur
true ou false, selon que le navigateur supporte ou non le sélecteur CSS
:hover sur autre chose qu'une ancre... autant dire qu'il faut détecter
si le navigateur est oui ou non Microsoft Internet Explorer.
Quelques précisions :
- Si le test se trompe pour les navigateurs très vieux du style
Netscape 4 ou Internet Explorer 5.0, ce n'est pas très grave.
- En revanche, le test ne doit pas se tromper pour les navigateurs
récents qui se font passer pour MSIE en maquillant leur appName.
- Le test ne doit pas porter sur une liste de navigateurs (Opera,
iCab, Mozilla, Firefox, etc.) car une telle liste ne sera jamais
exhaustive.
- Le test doit être aussi court que possible (ne pas dépasser trois
ou quatre lignes de 80 colonnes) et surtout être lisible.
Je précise que ce n'est pas qu'un jeu futile, mais que j'aimerais
vraiment avoir une solution utilisable (voir mes derniers articles dans
fr.comp.infosystemes.www.auteurs pour voir à quoi cela va servir).
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
(tu peux mettre true/false à la place de 1/0, cela ne change rien...Il est même possible, bien que moins propre de se passer totalement des affectations conditionnelles: IE5 = document.all && document.getElementById; )
-- Cordialement, Thierry ;-)
Bonjour,
Je voudrais vous proposer un mini-concours. Il n'y a strictement rien
à gagner, sinon mon estime personnelle...
Voici le challenge. Il s'agit d'initialiser une variable avec la
valeur true ou false, selon que le navigateur supporte ou non le
sélecteur CSS
hover sur autre chose qu'une ancre... autant dire qu'il faut détecter
si le navigateur est oui ou non Microsoft Internet Explorer.
Pour ton problème, afin d'avoir IE 5+ en une ligne :
IE5 = (document.all && document.getElementById) ? 1:0;
(tu peux mettre true/false à la place de 1/0, cela ne change rien...Il
est même possible, bien que moins propre de se passer totalement des
affectations conditionnelles: IE5 = document.all &&
document.getElementById; )
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
(tu peux mettre true/false à la place de 1/0, cela ne change rien...Il est même possible, bien que moins propre de se passer totalement des affectations conditionnelles: IE5 = document.all && document.getElementById; )
-- Cordialement, Thierry ;-)
ASM
Cenekemoi wrote:
Voici le challenge. Il s'agit d'initialiser une variable avec la valeur true ou false, selon que le navigateur supporte ou non le sélecteur CSS
hover sur autre chose qu'une ancre...
Le *truc* est bien défini : déterminer que le navigateur supporte les pseudo-classes *ailleurs* que sur les balises A
exemple de navigateur ne le supportant pas : IE (ttes versions à ce jour)
Ceux que j'utilise :
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Non ... ceci permet seulement(*) de savoir si le navigateur est compatible IE5, et ne permet pas de déterminer que c'est *exclusivement* IE
(*) Opera et iCab, par exemple, vont passer IE5 à true
-- Stephane Moriaux et son [moins] vieux Mac
Cenekemoi wrote:
Voici le challenge. Il s'agit d'initialiser une variable avec la
valeur true ou false, selon que le navigateur supporte ou non le
sélecteur CSS
hover sur autre chose qu'une ancre...
Le *truc* est bien défini :
déterminer que le navigateur supporte
les pseudo-classes *ailleurs* que sur les balises A
exemple de navigateur ne le supportant pas :
IE (ttes versions à ce jour)
Ceux que j'utilise :
Pour ton problème, afin d'avoir IE 5+ en une ligne :
IE5 = (document.all && document.getElementById) ? 1:0;
Non ...
ceci permet seulement(*) de savoir si le navigateur est compatible IE5,
et ne permet pas de déterminer que c'est *exclusivement* IE
(*) Opera et iCab, par exemple, vont passer IE5 à true
Voici le challenge. Il s'agit d'initialiser une variable avec la valeur true ou false, selon que le navigateur supporte ou non le sélecteur CSS
hover sur autre chose qu'une ancre...
Le *truc* est bien défini : déterminer que le navigateur supporte les pseudo-classes *ailleurs* que sur les balises A
exemple de navigateur ne le supportant pas : IE (ttes versions à ce jour)
Ceux que j'utilise :
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Non ... ceci permet seulement(*) de savoir si le navigateur est compatible IE5, et ne permet pas de déterminer que c'est *exclusivement* IE
(*) Opera et iCab, par exemple, vont passer IE5 à true
-- Stephane Moriaux et son [moins] vieux Mac
Olivier Miakinen
dom = document.getElementById ?1:0 IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est pas un bon test pour IE car il y a plusieurs faux positifs parmi les navigateurs récents. Ceux-ci, bien que supportant document.all, savent parfaitement traiter le sélecteur CSS :hover sur tout élément (pas seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
dom = document.getElementById ?1:0
IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est
pas un bon test pour IE car il y a plusieurs faux positifs parmi les
navigateurs récents. Ceux-ci, bien que supportant document.all, savent
parfaitement traiter le sélecteur CSS :hover sur tout élément (pas
seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne :
IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
dom = document.getElementById ?1:0 IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est pas un bon test pour IE car il y a plusieurs faux positifs parmi les navigateurs récents. Ceux-ci, bien que supportant document.all, savent parfaitement traiter le sélecteur CSS :hover sur tout élément (pas seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
Cenekemoi
dom = document.getElementById ?1:0 IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est pas un bon test pour IE car il y a plusieurs faux positifs parmi les navigateurs récents. Ceux-ci, bien que supportant document.all, savent parfaitement traiter le sélecteur CSS :hover sur tout élément (pas seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
Bon, bon, d'accord !...
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
(Ca, c'est bien spécifique IE5+ !)
-- Cordialement, Thierry ;-)
dom = document.getElementById ?1:0
IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est
pas un bon test pour IE car il y a plusieurs faux positifs parmi les
navigateurs récents. Ceux-ci, bien que supportant document.all, savent
parfaitement traiter le sélecteur CSS :hover sur tout élément (pas
seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne :
IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
Bon, bon, d'accord !...
Alors, voila qui est mieux :
IE5 = window.createPopup ? 1:0;
dom = document.getElementById ?1:0 IE = document.all ?1:0
Je ne peux que confirmer la réponse d'ASM. Tester document.all n'est pas un bon test pour IE car il y a plusieurs faux positifs parmi les navigateurs récents. Ceux-ci, bien que supportant document.all, savent parfaitement traiter le sélecteur CSS :hover sur tout élément (pas seulement sur les ancres).
Pour ton problème, afin d'avoir IE 5+ en une ligne : IE5 = (document.all && document.getElementById) ? 1:0;
Donc non, désolé.
Bon, bon, d'accord !...
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
(Ca, c'est bien spécifique IE5+ !)
-- Cordialement, Thierry ;-)
Olivier Miakinen
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment pas avec Gecko ou Opera sur Windows) : http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment parfait (un test particulièrement court, qui plus est) !
-- Olivier Miakinen
(*) Il faudra s'assurer que non seulement ça ne marche pas, mais qu'en plus l'objet n'existe effectivement pas. Test prévu dès que possible.
Alors, voila qui est mieux :
IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment
pas avec Gecko ou Opera sur Windows) :
http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne
fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment
parfait (un test particulièrement court, qui plus est) !
--
Olivier Miakinen
(*) Il faudra s'assurer que non seulement ça ne marche pas, mais qu'en
plus l'objet n'existe effectivement pas. Test prévu dès que possible.
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment pas avec Gecko ou Opera sur Windows) : http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment parfait (un test particulièrement court, qui plus est) !
-- Olivier Miakinen
(*) Il faudra s'assurer que non seulement ça ne marche pas, mais qu'en plus l'objet n'existe effectivement pas. Test prévu dès que possible.
ASM
Olivier Miakinen wrote:
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment pas avec Gecko ou Opera sur Windows) : http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment parfait (un test particulièrement court, qui plus est) !
C'est tellement magnifique que çà ne marche pô non plus sur IE Hop! poubelle, désolé...
désolé je suis sous les orages et ne me connecte qu'en pointillé
De mon côté j'ai pondu çà : http//perso.wanadoo.fr/stephane.moriaux/truc/detect_IE.htm en seulement 4 lignes !
à faire tester par les Macounets les Windoziens et Lunixois.
-- Stephane Moriaux et son [moins] vieux Mac
Olivier Miakinen wrote:
Alors, voila qui est mieux :
IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment
pas avec Gecko ou Opera sur Windows) :
http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne
fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment
parfait (un test particulièrement court, qui plus est) !
C'est tellement magnifique que çà ne marche pô non plus sur IE
Hop! poubelle, désolé...
désolé je suis sous les orages et ne me connecte qu'en pointillé
De mon côté j'ai pondu çà :
http//perso.wanadoo.fr/stephane.moriaux/truc/detect_IE.htm
en seulement 4 lignes !
à faire tester par les Macounets les Windoziens et Lunixois.
Alors, voila qui est mieux : IE5 = window.createPopup ? 1:0;
Ah je ne connaissais pas. J'ai trouvé une démo ici (ne marche évidemment pas avec Gecko ou Opera sur Windows) : http://msdn.microsoft.com/workshop/samples/author/dhtml/popup/usingpopup.htm
(Ca, c'est bien spécifique IE5+ !)
J'en ai bien l'impression. ASM, tu confirmes que la démo ci-dessus ne fonctionne ni sur iCab ni sur Opera Mac (*) ? Si oui, c'est vraiment parfait (un test particulièrement court, qui plus est) !
C'est tellement magnifique que çà ne marche pô non plus sur IE Hop! poubelle, désolé...
désolé je suis sous les orages et ne me connecte qu'en pointillé
De mon côté j'ai pondu çà : http//perso.wanadoo.fr/stephane.moriaux/truc/detect_IE.htm en seulement 4 lignes !
à faire tester par les Macounets les Windoziens et Lunixois.
Mozilla 1.7.8 OK (false) Opera 7.54 OK (false) Netscape 7.2 OK (false)
+ Mozilla 1.6 OK (false) + Firefox 1.0.6 OK (false)
J'achète !
Je vends, si vraiment çà marche.
Je suis d'autant plus content de ma trouvaille que çà fait un bout de temps que je cherche <http://groups.google.fr/group/comp.lang.javascript/tree/browse_frm/thread/4dc9008e52064056/0db5d830a30537ff?rnum=1&hl=fr&qÞtect+IE+[was]+getElementsByTagName&_done=%2Fgroup%2Fcomp.lang.javascript%2Fbrowse_frm%2Fthread%2F4dc9008e52064056%2F0db5d830a30537ff%3Ftvc%3D1%26q%3DDetect+IE+[was]+getElementsByTagName%26hl%3Dfr%26#doc_7621834fa10d45c8>
Faudra tout de même peaufiner pour les navigateurs plus anciens, faudrait pas que çà les pousse à geindre ou à gueuler.
Mozilla 1.7.8 OK (false)
Opera 7.54 OK (false)
Netscape 7.2 OK (false)
+ Mozilla 1.6 OK (false)
+ Firefox 1.0.6 OK (false)
J'achète !
Je vends, si vraiment çà marche.
Je suis d'autant plus content de ma trouvaille
que çà fait un bout de temps que je cherche
<http://groups.google.fr/group/comp.lang.javascript/tree/browse_frm/thread/4dc9008e52064056/0db5d830a30537ff?rnum=1&hl=fr&qÞtect+IE+[was]+getElementsByTagName&_done=%2Fgroup%2Fcomp.lang.javascript%2Fbrowse_frm%2Fthread%2F4dc9008e52064056%2F0db5d830a30537ff%3Ftvc%3D1%26q%3DDetect+IE+[was]+getElementsByTagName%26hl%3Dfr%26#doc_7621834fa10d45c8>
Faudra tout de même peaufiner pour les navigateurs plus anciens,
faudrait pas que çà les pousse à geindre ou à gueuler.
Mozilla 1.7.8 OK (false) Opera 7.54 OK (false) Netscape 7.2 OK (false)
+ Mozilla 1.6 OK (false) + Firefox 1.0.6 OK (false)
J'achète !
Je vends, si vraiment çà marche.
Je suis d'autant plus content de ma trouvaille que çà fait un bout de temps que je cherche <http://groups.google.fr/group/comp.lang.javascript/tree/browse_frm/thread/4dc9008e52064056/0db5d830a30537ff?rnum=1&hl=fr&qÞtect+IE+[was]+getElementsByTagName&_done=%2Fgroup%2Fcomp.lang.javascript%2Fbrowse_frm%2Fthread%2F4dc9008e52064056%2F0db5d830a30537ff%3Ftvc%3D1%26q%3DDetect+IE+[was]+getElementsByTagName%26hl%3Dfr%26#doc_7621834fa10d45c8>
Faudra tout de même peaufiner pour les navigateurs plus anciens, faudrait pas que çà les pousse à geindre ou à gueuler.