11496 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai un bloc de contenu qui me pose problème sous IE6 et inférieur. J'aimerais bien tout simplement ne PAS l'afficher avec ces vieux navigateurs, et je ne sais pas trop comment m'y prendre. Après avoir cherché sur le web et expérimenté un peu, voici ce que j'ai trouvé. Le code suivant me permet effectivement de bien reconnaître si c'est IE6 ou inférieur:

<!--[if lte IE 6]>
<script type="text/javascript">
  var montexte = "Internet Explorer 6 ou inférieur.";
  document.write(montexte);
  </script>
<![endif]-->


Maintenant, comment est-ce que je fais pour obtenir la négation de tout cela ? Autrement dit, quelque chose comme :

SI le navigateur est TOUT SAUF IE6 ou inférieur
ALORS affiche le contenu suivant

Quelqu'un a une idée ?
Modifié par kikinovak (04 Jun 2013 - 13:19)
salut,
je pense que tu attendras longtemps avant de voir un =< IE6 se connecter à ton site.
Pour ta logique, tu devrais simplement l'afficher normalement et le maquer pour IE6 et moins.
Tu devrais utiliser une autre technique qui te permet de cibler plus facilement tes éléments en fonction des versions IE, tu remplace dans ton code HTML <body> par
<!--[if lte IE 6]><body class="ltIE7 ltIE8 ltIE9"><![endif]--><!--[if IE 7]><body class="ie7 ltIE8 ltIE9"><![endif]--><!--[if IE 8]><body class="ie8 ltIE9"><![endif]--><!--[if !IE]><body><![endif]-->

Tu pourras ainsi cibler l'élément que tu veux cacher directement en CSS, avec

.ltIE7 ton_élément {display: none}

par ex
jb_gfx a écrit :
http://www.alsacreations.com/astuce/lire/48-commentaires-conditionnels.html


J'ai lu l'article, mais il ne répond pas à ma question.
Zelalsan a écrit :
salut,
je pense que tu attendras longtemps avant de voir un =&lt; IE6 se connecter à ton site.


J'habite le fin fond rural du sud de la France, et on a énormément de configurations vétustes par ici. Et justement une quantité respectable de vieux XP avec du IE6. Et même mon banquier à Nîmes utilise encore IE6. Non, ce n'est pas une blague.
kikinovak a écrit :


J'ai lu l'article, mais il ne répond pas à ma question.


Bien sûr que si. Sinon je n'aurais pas poster le lien.
Modifié par jb_gfx (04 Jun 2013 - 12:50)
Pourquoi n'appliques-tu pas ce que je t'ai proposé ? C'est la solution qu'il te faut, encore plus simple que d'ajouter des commentaires conditionnels partout.
Je viens de trouver la solution (dans le forum de Stackoverflow):

<!--[if lte IE 6]><![if gte IE 7]><![endif]-->
<!-- This is a bit mad, but code inside here is served to everything 
    except browsers less than IE7, so all browsers will see this -->
<!--[if lte IE 6]><![endif]><![endif]-->


Ça marche nickel.