Détecter IE et FF en JS

Résolu/Fermé
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 - 17 mars 2010 à 15:34
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 - 14 avril 2010 à 16:17
Bonjour Bonjour !

Alors je sais question déjà posé mais si je suis les tutaux, ça ne marche pas !! et je ne comprend pas.

Voilà ce dont j'ai besoin :

J'ai une CSS qui fonctionne très bien avec Safari et FireFox.
J'ai quelques Bugs en IE et j'ai une nouvelle feuille de style.

Il faut que le script détecte IE et amène sur sa feuille de style et si c'est un aute navigateur, l'autre feuille de style (j'en ai que 2).


Voilà ce que j'utilise, ca vient d'ici un vieux sujet qui traite de la même chose :

<script language="javascript">
<!--
//changement de code source si IE
if (window.navigator.appName == 'Microsoft Internet Explorer')
{
<link rel="stylesheet" href="calorieie.css" type="text/css" media="screen" />
}
else
{
<link rel="stylesheet" href="calorie.css" type="text/css" media="screen" />
}
-->
</script>

Et il n'affiche aucun CSS :(
je ne comprend pas, si quelqu'un peut m'aider ... je sur que y a pas grand chose .

6 réponses

le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
Modifié par le hollandais volant le 2/04/2010 à 18:54
Désolé, j'avais pas vu l'alerte 'nouveau message'.

L'érreur vient de là :

<!--> <![endif]-->  
<link rel="stylesheet" href="calorie.css" type="text/css" media="screen" />  
<!--[if !IE]> <--> 


Il faut inverser tout ça pour que cela devienne :

<!--[if !IE]> <-->  
<link rel="stylesheet" href="calorie.css" type="text/css" media="screen" />  
<!--> <![endif]-->  
Matricule 18-38-4
1
le hollandais volant Messages postés 4998 Date d'inscription samedi 8 mars 2008 Statut Membre Dernière intervention 23 décembre 2023 1 056
17 mars 2010 à 18:20
Salut !

en gros, il te faut séparer IE et tous les autres ? Si c'est ça, nul besoin de JS : IE est tellement nul que microsoft a implementé ce que l'on nomme les commentaires conditionnel : en gros, ce sont des commentaires HTML pour tous les navigateurs, sauf pour IE !

On peut donc masquer du code à IE ou lui en donner (en particulier). On peut de ce fait faire un feuille de CSS pour IE et une pour tous les autres navigateurs. Ces commentaires conditionnels sont faire pour cela et sont parfaitement valides au niveau du W3C.

Voici plus d'informations : http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows

C'est un peu difficile à comprendre, je sais, mais c'est vraiment un truc très très très utile.

Pour faire ce que tu veux (une feuille pour IE, une feuille CSS pour les autres), je propose ça :


<!--[if IE]>
<link rel="stylesheet" href="calorieie.css" type="text/css" media="screen" /> 
<![endif]-->
Ci dessus : la feuille pour IE.

ci dessous : la feuille masquée à IE.

<!--> <![endif]-->
<link rel="stylesheet" href="calorie.css" type="text/css" media="screen" /> 
<!--[if !IE]> <-->


Ceci ne marche que pour Internet Explorer. Il n'y a pas d'équivalents pour les autres navigateurs.
Le lien que je t'ai donné te montre aussi comment cibler par exemple IE7 en particulier ou IE8, etc.

bien sûr, ici les Commentaires conditionnels sont utilisés pour masquer/afficher une feuille CSS, mais on peut très bien les utiliser en plein milieu de la page (pour masque un paragraphe par exemple) !

bonne chance
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
18 mars 2010 à 09:31
Merci beaucoup pour ces tuyaux précieux !!
Je vais essayer de tester ça aujourd'hui et je te tiens au courant.
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
25 mars 2010 à 16:58
euh ...
j'ai un petit soucis.

j'ai mis ça dans le <head></head>:

<!--[if IE]>
<link rel="stylesheet" href="calorieie.css" type="text/css" media="screen" />
<![endif]-->

<!--> <![endif]-->
<link rel="stylesheet" href="calorie.css" type="text/css" media="screen" />
<!--[if !IE]> <-->

Sur FF et autre ca m'affiche tout correctement (avec calorie.css)
Par contre sur IE il ne m'affiche que ça :

<![endif]-->

le tout sur une page blanche, aucun texte, aucune image rien de rien.
J'ai du rater quelque chose mais quoi ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
2 avril 2010 à 13:00
une petite aide svp !
0
kiyomasa Messages postés 312 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 12 mai 2016 5
14 avril 2010 à 16:17
merci beaucoup cela devrait aller maintenant.
merci beaucoup !
0