Changement de css fonction du navigateur [Résolu]

Signaler
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour,
je charche à changer ma feuille de style fonction du navigateur. En un premier temps juste firefox et IE.
Voici mon scripte :

<script type="text/javascript">
function redirect_navigateur(){
    if(navigator.appName=='Microsoft Internet Explorer'){
        document.write('<link href="style/style_ie.css" rel="stylesheet" type="text/css" />');
    }
        else{
    document.write('<link href="style/style_gen.css" rel="stylesheet" type="text/css" />');
    }
}

et

J'obtiens comme résultat que rien ne s'affiche : page blanche. Quelqu'un aurait-il une idée ?

Tout vient à qui sait attendre

11 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

    regarde la source de ta page,
       elle ne va plus contenir que <link href="style/style_??.css" rel="stylesheet" type="text/css" />

    document.write, s'il est exécuté lorsque la page a été totalement interprétée,
       ce qui est la cas dans le ouload, commenca par effacer cette page....
      
    tu peux faire :

    <link ... pour tous ... >
    <!--[if IE]>
    <LINK    REL="stylesheet"
            TYPE="text/css"
            HREF="rectifications/ajouts pour ie .css">
    <![endif]-->

    par exemple

  pour faire "plus"   j'ai du mettre un scipt Traitement Immédiat du Css   par exemple

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Petit progrès avec :
if ("IE" == navigator.appName)

{document.write('<link href="style/style_ie.css" rel="stylesheet" type="text/css" />');

} else {

document.write('<link href="style/style_gen.css" rel="stylesheet" type="text/css" />');}

}

Là j'ai un affichage, mais la feuille de style n'esp pas du tout prise...

Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Euh, non, en fait ça marche toujours pas

Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
D'abords, merci pour ta réponse simple et efficace.
Sinon juste ne question : comment ce fait-il que l'appel soit prix alors qu'on est en commentaire ?

Tout vient à qui sait attendre
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>comment ce fait-il que l'appel soit prix alors qu'on est en commentaire ?
    pas tout à fait... pour IE.
        avec IE....   on peut même aller beaucoup plus loin...
            qui est beaucoup moins stupide que certains voudraient qu'il ne soit !
             un ch'tite recherche sur la toile devrait t'expliquer ça bien mieux que moi.
        et même, par exemple, en javascript :                 var ie false;    /*@cc_on    ie true;    @*/
                 qu'on appelle "compilation conditionnelle" même si JS c'est de l'interprété,
                     mais c'est un abus de langage !
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Ok, je fouillerais. Merci.
Sinon, par rapport à ton explication, si je mets pas le script dans une fonction et que je l'applique directement... il fonctionne !
Les arcanes du web sont impénétrables !!!!.
Encore merci !

Tout vient à qui sait attendre
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
euh...   tu parles de quoi ?
    ma 1ère réponse c'était du html...   et là : pas de function.    si on parle de var ie false;    /*@cc_on    ie true;    @*/
       ce doit être parce que var.... dans une fonction, c'est une variable locale.
       il faut mettre ça en variable globale... ou autre...
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Non, je parle de
if(navigator.appName=='Microsoft Internet Explorer'){

document.write('<link href="style/style_ie.css" rel="stylesheet" type="text/css" />');
}

else{
document.write('<link href="style/style_gen.css" rel="stylesheet" type="text/css" />');
}

Tout vient à qui sait attendre
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
Mon tout premier poste.

Tout vient à qui sait attendre
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>si je mets pas le script dans une fonction et que je l'applique directement... il fonctionne !
    pas réellement un problème de function , mais de moment où se déroule
          le document.write
   si la page n'est pas totalement interprétée, le document.write ajoute au contenu.
          sinon, la page est effacée, y compris le javascript....
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
618
Date d'inscription
mercredi 4 avril 2007
Statut
Membre
Dernière intervention
27 août 2010
2
OK, merci pour tout

Tout vient à qui sait attendre