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).
à faire tester par les Macounets les Windoziens et Lunixois.
Firefox et Konqueror sous Linux :
est-ce IE ? : false
Ouf !
Bien que ... à part IE, quel navigateur pourrait se fourvoyer ainsi ?
Merci Bill
-- Stephane Moriaux et son [moins] vieux Mac
Olivier Miakinen
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.
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
<cit.>
/* If gEBTN is supported, attempt to use it. */ if(document.getElementsByTagName) { collection = document.getElementsByTagName('*'); }
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever return a non-empty collection using this code?" If so, then yes, IE6 will return a collection containing all elements within the document, as it should. IE5.x will always return an empty collection, and IE4 doesn't support the getElementsByTagName method at all. </cit.>
Du coup, pour gérer les plus vieux IE, je me demande si le test ne serait pas mieux comme ceci :
Cela ne devrait rien changer aux navigateurs corrects, qui doivent répondre true jusqu'à document.getElementsByTagName('*').length.
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.
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
<cit.>
/* If gEBTN is supported, attempt to use it. */
if(document.getElementsByTagName) {
collection = document.getElementsByTagName('*');
}
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever
return a non-empty collection using this code?" If so, then yes, IE6
will return a collection containing all elements within the document, as
it should. IE5.x will always return an empty collection, and IE4 doesn't
support the getElementsByTagName method at all.
</cit.>
Du coup, pour gérer les plus vieux IE, je me demande si le test ne
serait pas mieux comme ceci :
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.
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
<cit.>
/* If gEBTN is supported, attempt to use it. */ if(document.getElementsByTagName) { collection = document.getElementsByTagName('*'); }
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever return a non-empty collection using this code?" If so, then yes, IE6 will return a collection containing all elements within the document, as it should. IE5.x will always return an empty collection, and IE4 doesn't support the getElementsByTagName method at all. </cit.>
Du coup, pour gérer les plus vieux IE, je me demande si le test ne serait pas mieux comme ceci :
Bien que ... à part IE, quel navigateur pourrait se fourvoyer ainsi ?
IE ?
;-)
-- Christophe PEREZ Écrivez moi sans _faute !
ASM
Olivier Miakinen wrote:
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
si tu avais pu traduire du même coup, çà m'aurait bien facilité.
<cit.>
/* If gEBTN is supported, attempt to use it. */ if(document.getElementsByTagName) { collection = document.getElementsByTagName('*'); }
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever return a non-empty collection using this code?" If so, then yes, IE6 will return a collection containing all elements within the document, as it should. IE5.x will always return an empty collection, and IE4 doesn't support the getElementsByTagName method at all. </cit.>
Je n'ai plus IE4 Mac pour voir ... Mais IE5 1 ou 2 pour Mac ne retourne pas une empty collection ... loin s'en faut ... puisque, par chance, il retourne aussi le doctype.
Du coup, pour gérer les plus vieux IE, je me demande si le test ne serait pas mieux comme ceci :
Cela ne devrait rien changer aux navigateurs corrects, qui doivent répondre true jusqu'à document.getElementsByTagName('*').length.
Comme vieux navigateur je n'ai plus que NC4.5 (et IE5.1) ancien Mac
pour cette page : http://perso.wanadoo.fr/stephane.moriaux/truc/detect_IE_trans_40.htm
NC me dit : est-ce IE ? : undefined test non ou non ie4 = true ie5 = true ie6 = true ie7 = true c'est à dire vrai partout (forcément puisque vrai dès le début)
tandis que mes IE-5 me disent : est-ce IE ? : true test non ou non ie4 = false ie5 = false ie6 = false ie7 = true
(pour FF c'est false pour tout)
-- Stephane Moriaux et son [moins] vieux Mac
Olivier Miakinen wrote:
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
si tu avais pu traduire du même coup, çà m'aurait bien facilité.
<cit.>
/* If gEBTN is supported, attempt to use it. */
if(document.getElementsByTagName) {
collection = document.getElementsByTagName('*');
}
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever
return a non-empty collection using this code?" If so, then yes, IE6
will return a collection containing all elements within the document, as
it should. IE5.x will always return an empty collection, and IE4 doesn't
support the getElementsByTagName method at all.
</cit.>
Je n'ai plus IE4 Mac pour voir ...
Mais IE5 1 ou 2 pour Mac ne retourne pas une empty collection
... loin s'en faut ... puisque, par chance, il retourne aussi le doctype.
Du coup, pour gérer les plus vieux IE, je me demande si le test ne
serait pas mieux comme ceci :
Cela ne devrait rien changer aux navigateurs corrects, qui doivent
répondre true jusqu'à document.getElementsByTagName('*').length.
Comme vieux navigateur je n'ai plus que NC4.5 (et IE5.1) ancien Mac
pour cette page :
http://perso.wanadoo.fr/stephane.moriaux/truc/detect_IE_trans_40.htm
NC me dit :
est-ce IE ? : undefined
test non ou non
ie4 = true
ie5 = true
ie6 = true
ie7 = true
c'est à dire vrai partout (forcément puisque vrai dès le début)
tandis que mes IE-5 me disent :
est-ce IE ? : true
test non ou non
ie4 = false
ie5 = false
ie6 = false
ie7 = true
Je cite ce que disait Michael Winter (7e article du lien que tu as donné) :
si tu avais pu traduire du même coup, çà m'aurait bien facilité.
<cit.>
/* If gEBTN is supported, attempt to use it. */ if(document.getElementsByTagName) { collection = document.getElementsByTagName('*'); }
Does IE Windows unsupport this collection ?
Again, I'm confused as to what you mean. Perhaps: "Will IE/Win ever return a non-empty collection using this code?" If so, then yes, IE6 will return a collection containing all elements within the document, as it should. IE5.x will always return an empty collection, and IE4 doesn't support the getElementsByTagName method at all. </cit.>
Je n'ai plus IE4 Mac pour voir ... Mais IE5 1 ou 2 pour Mac ne retourne pas une empty collection ... loin s'en faut ... puisque, par chance, il retourne aussi le doctype.
Du coup, pour gérer les plus vieux IE, je me demande si le test ne serait pas mieux comme ceci :
Cela ne devrait rien changer aux navigateurs corrects, qui doivent répondre true jusqu'à document.getElementsByTagName('*').length.
Comme vieux navigateur je n'ai plus que NC4.5 (et IE5.1) ancien Mac
pour cette page : http://perso.wanadoo.fr/stephane.moriaux/truc/detect_IE_trans_40.htm
NC me dit : est-ce IE ? : undefined test non ou non ie4 = true ie5 = true ie6 = true ie7 = true c'est à dire vrai partout (forcément puisque vrai dès le début)
tandis que mes IE-5 me disent : est-ce IE ? : true test non ou non ie4 = false ie5 = false ie6 = false ie7 = true
(pour FF c'est false pour tout)
-- Stephane Moriaux et son [moins] vieux Mac
Cenekemoi
Bonjour à ASM qui nous a
C'est tellement magnifique que çà ne marche pô non plus sur IE
Je ne comprend pas cette phrase ?!? Chez moi, sous IE "window.createPopup" renvoie bien un objet...
Peux-tu expliciter, STP ?
-- Cordialement, Thierry ;-)
Bonjour à ASM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> qui nous a
C'est tellement magnifique que çà ne marche pô non plus sur IE
Je ne comprend pas cette phrase ?!?
Chez moi, sous IE "window.createPopup" renvoie bien un objet...