2

J'utilise un site web DotNetNuke CMS construit sur un framework ASP.NET.Commentaires conditionnels - Inclure javascript basé sur IE Version

J'ai quelques scripts dans mon skin de page que je ne veux pas utiliser sur IE8 et ci-dessous. J'ai été google'ing autour, et j'ai trouvé cette déclaration conditionnelle d'IE.

<![if gt IE 8]> 

Comme par http://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx, ce snippit devrait inclure le code InBetween pour tout navigateur qui est supérieur à IE8. J'ai essayé d'utiliser cette instruction conditionnelle de la manière suivante:

<![if gt IE 8]> 
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script> 
<![endif]--> 

Cependant, cela ne semble pas fonctionner, et les scripts ne fonctionnent pas sur un navigateur. Y a-t-il une meilleure façon d'atteindre cet objectif? Y a-t-il une erreur de syntaxe dans mon code?

Merci pour votre aide! Alex

+0

Cela fonctionnera dans IE 9, mais IE 10 a cessé de prendre en charge les commentaires conditionnels. http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx. Vous pouvez utiliser la compilation conditionnelle, qui est prise en charge dans toutes les versions. Voici un post à ce sujet: http: // stackoverflow.com/questions/16135814/check-for-ie-10/16135889 # 16135889 – Ian

+0

Vérifiez votre syntaxe: ' ... ' – elclanrs

Répondre

2

Le commentaire conditionnel devrait être:

<!--[if IE 8]> 
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script> 
<![endif]--> 

avec les deux tirets après le point d'exclamation.

Il a appelé un "commentaire conditionnel" parce qu'il est en fait un commentaire HTML:

<!-- this is a comment -->. 

Internet Explorer (jusqu'à IE9) fait une exception et d'analyser les commentaires au format spécial

<!--[ if ... ] 
... 
<![endif]--> 

comme une instruction, mais pour tous les autres navigateurs est juste un commentaire et il sera ignoré.

+0

Merci. Logique. –

1

Je voulais juste ajouter des informations mises à jour que de IE10 et plus, les commentaires conditionnels ne sont pas pris en charge, donc l'utilisation d'un conditionnel comme si,

<!--[if gt IE 8]> 
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script> 
<![endif]--> 

qui comprend un opérateur gt (par poste de question) , signifie que le script ne fait apparaître dans IE9, faisant efficacement la même en fonction de l'écriture:

<!--[if IE 9]> 
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-4f21643b21c50811"></script> 
<![endif]--> 

Fin de l'article de soutien conditionnel: https://msdn.microsoft.com/en-us/library/ie/hh801214%28v=vs.85%29.aspx

ressource commentaires conditionnels: https://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx

0

Il suffit d'ajouter une information à charger différents scripts pour IE10 + et IE9-.

<!--[if lt IE 10]> 
     <script src="scripts/jquery-1.x.x.min.js" type="text/javascript"></script> 
    <!--<![endif]--> 
    <!--[if gte IE 10]><!--> 
    <script src="jquery-2.x.x.min.js" type="text/javascript"></script> 
    <!--<![endif]--> 

Notez le code à la ligne 4, il informe IE10 + que la balise de script à la ligne 5 n'est pas un commentaire

La déclaration ci-dessus conditionnelle chargera jquery-1.xx dans IE9 ou moins et charges jquery -2.xx pour les versions IE10 +.

Questions connexes