Comment cibler uniquement Internet Explorer 10 dans certaines situations telles que le CSS spécifique à Internet Explorer ou le code JavaScript spécifique à Internet Explorer?
J'ai essayé ceci, mais cela ne fonctionne pas:
<!--[if IE 10]> <html class="no-js ie10" lang="en"> <![endif]-->
<!--[if !IE]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
Internet Explorer 10 ignore les commentaires conditionnels et utilise au <html lang="en" class="no-js">
lieu de <html class="no-js ie10" lang="en">
.
@cc_on
déclaration . Donc, pour détecter si IE10 est prise en charge ou non, vous pouvez utiliser le code suivant: <!--[if !IE]><!--><script>if(/*@cc_on!@*/false){document.documentElement.className+=' ie10';}</script><!--<![endif]-->
. (J'ai posté ceci en commentaire, car IE est toujours en développement, donc on ne sait pas si la version finale prend également en charge cette fonctionnalité)
<script>if(Function('/*@cc_on return document.documentMode===10@*/')()){document.documentElement.className+=' ie10';}</script>
Améliorations: n'a pas besoin de commentaires conditionnels; fonctionne même si la compression / traitement de suppression de commentaires; aucune classe ajoutée pour ie11; fonctionnera avec ie11 fonctionnant en mode de compatibilité ie10; n'a pas besoin de balise de script autonome (peut simplement être ajoutée à d'autres javascript dans head).
if(document.documentMode) document.documentElement.className+=' ie'+document.documentMode+'mode';
- qui résout 90% des problèmes (parfois les modes de compatibilité échouent, auquel cas vous avez besoin d'un autre niveau de correctif en plus de cela).