Rechercher : dans
Par :

Changer lien CSS en javascript

Dernière réponse le 26 jan 2009 à 21:31:26 powpowland, le 7 mai 2008 à 14:51:00 
 Signaler ce message aux modérateurs

Bonjour,

ayant une css totalement différente entre Firefox et Internet Explorer, j'ai mis une détection du moteur de recherche en place qui marche. après cette détection, je souhaite pouvoir mettre une CSS différente pour chacun des navigateurs mais je n'y arrive pas...

quelqu'un pourrait m'aider??

Merci d'avance

Configuration: Windows XP
Firefox 2.0.0.14

1

metallciste, le 7 mai 2008 à 15:03:27

Tu peut faire ça avec PHP:

<html>
<head>
<?php
if (ton_test_du_moteur=internet_explorer)
echo '<link href="Style/Style_1.css" rel="stylesheet" type="text/css" /> ';
else
echo '<link href="Style/Style_2.css" rel="stylesheet" type="text/css" />';
?>
</head>
</html>

Répondre à metallciste

2

powpowland, le 7 mai 2008 à 15:24:47

ça marche pour Mozilla mais IE passe au travers...

comment on fait un pop up déjà avec PHP pour voir si IE entre dans la boucle ???

Répondre à powpowland

3

powpowland, le 7 mai 2008 à 15:39:01

En fait le truc c'est que quand je passe sur IE, il n'y a aucune CSS qui se met en place...

Répondre à powpowland

4

metallciste, le 7 mai 2008 à 17:26:24

Le problème est dans le test du navigateur, donne moi le code du test

Répondre à metallciste

5

powpowland, le 13 mai 2008 à 08:48:17

<?php
if (ton_test_du_moteur = internet_explorer)
echo '<link href="allie.css" rel="stylesheet" type="text/css" /> ';
else{
echo '<link href="all.css" rel="stylesheet" type="text/css" /> ';
echo '<link href="accueil.css" rel="stylesheet" type="text/css" />';}
?>

Répondre à powpowland

6

powpowland, le 13 mai 2008 à 10:11:12

J'ai rajouté du javascript dans le php pour pouvoir faire une alert pour voir si ça rentre dans la boucle mais IE ne rentre dans aucune des deux boucle, ni dans le if ni dans le else... au secour!!!

<?php
if (ton_test_du_moteur = internet_explorer)
{
echo '<script type="text/javascript">alert("IE7");</script>';
echo '<link href="allie.css" rel="stylesheet" type="text/css" /> '};

else{
echo '<script type="text/javascript">alert("autres");</script>';
echo '<link href="all.css" rel="stylesheet" type="text/css" /> ';
echo '<link href="accueil.css" rel="stylesheet" type="text/css" />';}
?>

Répondre à powpowland

7

powpowland, le 13 mai 2008 à 10:18:47

Je viens de remarquer un truc...

sur firefox avant que l'alert se mette en place, sur la page il y a écrit alert("IE7");';echo''};else { echo'

est-ce que ça a un rapport avec le probleme rencontré??

Répondre à powpowland

8

metallciste, le 14 mai 2008 à 12:51:02

Ton_test_du_moteur ce n'est pas un test du navigateur, c'est ce que je t'est écrit. envoie moi le test du navigateur.

Répondre à metallciste

9

metallciste, le 14 mai 2008 à 12:52:24

Dans ton premier message : "j'ai mis une détection du moteur de recherche en place qui marche."
donne la moi.

Répondre à metallciste

10

powpowland, le 14 mai 2008 à 13:05:44

Le truc c'est que celui-ci est en javascript... mais je te l'envoie quand même... le probleme c'est que je n'arrive pas à incorporer le link CSS...


<!--détection navigateur-->
<script type="text/javascript">
function checkBrowser(){
if (window.navigator.appName == 'Microsoft Internet Explorer')
{
alert('IE7');
}
else
{
alert('autre');
}}
</script>

Répondre à powpowland

11

metallciste, le 14 mai 2008 à 16:21:10

<html>
<head>
<script type="text/javascript">
function checkBrowser()
{
if (window.navigator.appName == 'Microsoft Internet Explorer')
{
echo '<link href="Style/Style_ie.css" rel="stylesheet" type="text/css" /> ';
}
else
{
echo '<link href="Style/Style_ff.css" rel="stylesheet" type="text/css" />';
}
}
</script>
</head>
</html>

Répondre à metallciste

12

powpowland, le 14 mai 2008 à 17:01:16

Il y a un probleme, il ne supporte pas le echo je crois... parce que j'ai mis une alert pour tester et quand il y a echo alert ne marche pas... et bizarement des que je met un echo même sans caractère spéciaux dedans (jpensais que c'est ça ki planté) ça fait planté le javascript... je crois que je vais laissé tombé... à moins que t'y comprenne kekchose...

Répondre à powpowland

13

powpowland, le 15 mai 2008 à 11:55:19

C'est bon j'en ai trouvé un en php et il marche... je vous le donne au cas où...



<?php
if (ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) {
echo '<link rel="stylesheet" type="text/css" href="allie.css" media="screen, projection" />';
echo '<link rel="stylesheet" type="text/css" href="accueilie.css" media="screen, projection" />';
echo '<style type="text/css">
#extraDiv1, #permanant{
position: absolute;
top:expression(documentElement.scrollTop+body.scrollTop);
}

#permanant {
background: green fixed;
}

body{
background: #2f67b2 fixed;
}
</style>';
} else if (ereg("^Mozilla/", $_SERVER["HTTP_USER_AGENT"])) {
echo '<link rel="stylesheet" type="text/css" href="all.css" media="screen, projection" />';
echo '<link rel="stylesheet" type="text/css" href="accueil.css" media="screen, projection" />';
} else if (ereg("^Opera/", $_SERVER["HTTP_USER_AGENT"])) {
echo "Opéra<br>";
echo '<link rel="stylesheet" type="text/css" href="all.css" media="screen, projection" />';
echo '<link rel="stylesheet" type="text/css" href="accueil.css" media="screen, projection" />';
} else {
echo "un navigateur qui m'est inconnu<br/>";
}
?>

Répondre à powpowland

14

 siciliano, le 26 jan 2009 à 21:31:26

Bonjour,
le code ne semble pas résolu ... puisque la question était : "Comment en JavaScript ..." ... or la réponse est en PHP; ce qui entraînera un A/R Client/Serveur coûteux et risqué (si des valeurs ont été saisies ...) et inutile.
Voilà une solution légère en JS.
Admettons que vous ayez 2 fichiers CSS : rouge.css et noir.css.
Au chargement rouge.ccs a été choisi.

Le lien est le suivant <link id="lienCSS" href='rouge.css' rel='stylesheet' type='text/css'>,
vous avez identifié votre élément HTML : id="lienCSS"

Sur un click de bouton vous voulez changer :
<input name="cb_noir" type="button" value="Noir" onClick="changerStyle('noir')" />
<input name="cb_rouge" type="button" value="Rouge" onClick="changerStyle('rouge')" />

voilà la fonction :
function changerStyle(asCouleur)
{
if(asCouleur == 'noir') document.getElementById("lienCSS").href="noir.css";
if(asCouleur == 'rouge') document.getElementById("lienCSS").href="rouge.css";;
}
Le tour est joué. Testé avec FX 3.X, IE7, Opera 9.63, Safari 3.2.1, le tout sous XP.

Répondre à siciliano
Collection CommentÇaMarche.net