Utilisez un commentaire conditionnel pour déterminer la version de IE. Eh bien, quelqu'un l'a proposé tôt, mais n'a pas regardé soigneusement le code. Je l'ai vu quand je regardais la tarte CSS3 hier, et je pensais que c'était peu fiable. Je l'ai également mentionné aujourd'hui par Paul Irish, donc je le recommande. Ceci est écrit sur le blog de l'auteur:
La copie de code est la suivante:
// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Un court extrait pour détecter les versions de IE dans JavaScript
// sans recourir au reniflement de l'agent utilisateur
// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Si vous n'êtes pas dans IE (ou la version IE est inférieur à 5) alors:
// ie === Undefined
// Si vous êtes dans IE (> = 5), vous pouvez déterminer quelle version:
// ie === 7; // IE7
// Ainsi, pour détecter c'est-à-dire:
// if (ie) {}
// et pour détecter la version:
// ie === 6 // ie6
// ie> 7 // ie8, ie9 ...
// IE <9 // rien de moins que IE9
// -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Mise à jour: maintenant en utilisant l'idée nodelist en direct de @jdalton
var ie = (function () {
var undef,
v = 3,
div = document.CreateElement ('div'),
all = div.getElementsByTagName ('i');
Alors que (
div.innerhtml = '<! - [si gt ie' + (++ v) + ']> <i> </i> <! [endif] ->',
Tous [0]
));
retourner v> 4? V: Undef;
} ());
Faites attention à cette déclaration. C'est ce que je trouve le plus intéressant. Pour l'opérateur de virgule. Je ne le connais pas et je suis simplement coincé avec l'utilisation de définitions variables. Par exemple:
La copie de code est la suivante:
var a = 'b', c = 'd', e = 'f';
var obj = {
A: 'B',
c: 'D',
E: 'F'
}
J'ai demandé à mon collègue @kangpangpang et j'ai à nouveau vérifié le livre. En fait, c'est relativement rare. Habituellement, la dernière valeur est renvoyée.
La copie de code est la suivante:
var a = (1,2,3,5,6,0,9,4); // a === 4
Eh bien, c'est probablement ça. Très intéressant.