2010-12-10 1 views
25

J'utilise un script de carrousel d'image qui est assez lourd sur le navigateur. Cela fonctionne très bien dans Opera et Chrome, moitié décent dans FF et casse absolument mes couilles dans IE. Donc, je voudrais donner aux utilisateurs d'IE une alternative de HTML simple sans aucune action/JS.Si le navigateur est Internet Explorer: exécutez plutôt un script alternatif

Le script n'utilise pas MT ou jQuery et ses 380 lignes de JS. Serait-il possible de donner aux utilisateurs d'IE une alternative HTML?

var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") { // what command can i use? }

+1

Les commentaires conditionnels sont obsolètes depuis IE10. Voir http://blogs.msdn.com/b/ie/archive/2011/07/06/html5-parsing-in-ie10.aspx?Redirected=true –

Répondre

21

Cet article est tout à fait explicite: http://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx.

Si votre JS est discret, vous pouvez simplement utiliser:

<![if !IE]> 
    <script src... 
<![endif]> 
+2

J'ai trouvé en utilisant ' 'sauvé par bacon. Merci! –

+2

les commentaires conditionnels sont obsolètes depuis IE10. Voir http://blogs.msdn.com/b/ie/archive/2011/07/06/html5-parsing-in-ie10.aspx?Redirected=true –

+0

@AdrienBe Essayaient-ils de tuer Internet Explorer? Pourquoi supprimer la fonctionnalité qui nous permet d'accommoder ses défauts? –

19

Vous pouvez faire quelque chose comme ceci pour inclure javascript spécifique à IE:

<!--[IF IE]> 
    <script type="text/javascript"> 
     // IE stuff 
    </script> 
<![endif]--> 
+1

vous avez oublié le "!", Je pense:

+4

c'est faux. la condition doit être en dehors des balises de script – wlf

4

var browserName = navigator.appName; si (browserName == "Microsoft Internet Explorer") { document.write ("Votre html pour IE") }

+0

Pour quiconque utilise cette réponse, consultez d'abord ce post. IE 11 a quelques problèmes de compatibilité avec cette approche. http://stackoverflow.com/questions/17907445/how-to-detect-ie11 –

9

Pour les conditions IE10 + standart ne fonctionnent pas cause de changement de moteur ou quelques autres raisons, cause , vous savez, c'est MSIE. Mais pour IE10 + vous devez exécuter smth comme ceci dans vos scripts

if (!!navigator.userAgent.match(/Trident\/7\./)){ 
//do stuff for IE. 
} 
+0

La plus utile à jour réponse. Devrait être au sommet. – carla

0

test dans tous les navigateurs:

<![if !IE]><script type="text/javascript">BROWSERIE = false;</script><![endif]> 
<!--[if IE]><script type="text/javascript">BROWSERIE = true;</script><![endif]--> 

Les premiers travaux de commentaires conditionnels sur de bons navigateurs, le second travaille sur IE. C'est un var global.Ensuite, vous pouvez y accéder à partir d'une partie, ou tout JS inclus dans votre page, puis testez-le, comme:

console.log('isIE = ' + BROWSERIE); 
console.log(typeof BROWSERIE); 
if(BROWSERIE) $('.modal').removeClass('fade'); // for example, if `fade` causes an error in IE. 
+0

très constructif: un downvoter sans une meilleure opinion! –

0

Essayez ceci: Le systemLanguage et la LangueUtilisateur est non défini dans tous les navigateurs. Notez que toutes (ou presque) les réponses ci-dessous mentionnent des commentaires conditionnels.

if(navigator.userLanguage !== "undefined" && navigator.systemLanguage !== "undefined" && navigator.userAgent.match(/trident/i)) { 
    alert("hello explorer i catch U :D") 
    }