Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 11h35   #1
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Par défaut Un hack CSS pour Firefox inférieur à 3.5

Bonjour à tous,

J'ai un site Internet dont une partie ne fonctionne pas si Firefox est inférieur à 3.5 (donc FF 3.0 par ex, le 2, etc).

J'ai trouvé sur Internet des hack pour Firefox 2, Firefox 3... le problème de ce dernier est qu'il hack TOUS les Firefox 3, donc y compris le 3.5 où le code fonctionne

Existe-t-il un hack CSS (voire via javascript...) pour Firefox inférieur à 3.5 ?

Merci d'avance
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 11h40   #2
Rédacteur/Modérateur
 
Homme Jérome Debray
Responsable de projet
Inscription : mai 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Jérome Debray
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Responsable de projet
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 627
Points : 3 064
Points : 3 064
Salut,

la vrai question c'est pourquoi as tu besoin d'un hack ? Quel est le problème auquel tu es confronté ?
ornitho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 11h58   #3
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Bonjour et merci pour ta réponse

Le site concerné est celui-ci : http://raudin.u-bordeaux3.fr/
Il y a un slide (fait avec Slidedeck pour Wordpress) en page d'accueil. Il utilise, entre autres, une propriété de rotation qui ne fonctionne pas sur Firefox 2 et Firefox < 3.5, ni sur IE6 par ailleurs.

La seule façon "aisée" que je vois est de carrément masquer le slider sur ces versions, le temps nous étant compté pour ce site

Pour faire court, je cherche un truc du genre (c'est pas du vrai code hein )

Code :
1
2
3
4
5
6
 
SI (Navigateur == Firefox && Version Firefox < 3.5) {
     <style type="text/css">
          #slide { display: none; }
     </style>
}
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 14h29   #4
Rédacteur/Modérateur
 
Homme Jérome Debray
Responsable de projet
Inscription : mai 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Jérome Debray
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Responsable de projet
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 627
Points : 3 064
Points : 3 064
Je vois que tu utilises jQuery.

Tu peux donc récupérer facilement le nom du navigateur et la version (jquery.browser, il est déprécié mais toujours utilisé) et faire ceci par exemple:
Code Tiré de la documentation jQuery :
1
2
3
4
5
 
var ua = $.browser;
  if ( ua.mozilla && ua.version.slice(0,3) == "1.9" ) {
    alert( "Do stuff for firefox 3" );
  }
ornitho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 14h39   #5
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Merci beaucoup pour ta réponse

Ce site a cependant quelques difficultés avec les jQuery j'ai l'impression... Il me renvoie une erreur, étrange puisqu'en lien avec l'usage basique du code jQuery :

Erreur*: $ is not a function
Fichier Source*: http://raudin.u-bordeaux3.fr/
Ligne*: 37


Erreur*: $ is undefined
Fichier Source*: http://raudin.u-bordeaux3.fr/
Ligne*: 112


Connais-tu ou sais-tu où trouver l'équivalent sans utilisation de jQuery ?
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 14h53   #6
Rédacteur/Modérateur
 
Homme Jérome Debray
Responsable de projet
Inscription : mai 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Jérome Debray
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Responsable de projet
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 627
Points : 3 064
Points : 3 064
en javascript pur, tu dois utiliser l'objet navigator:
Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
var version,string;
var detect = navigator.userAgent.toLowerCase();
function checkUA(str)
{
	position = detect.indexOf(str) + 1;
	string = str;
	return position;
}
window.onload = function(){
 
	if(checkUA('firefox')){
		alert('je suis sous firefox');
		if (!version) {
			version = detect.charAt(position + string.length);
			alert('voici la version : ' + version);
		}
	}
}

le script est à adapter pour la version
ornitho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 15h08   #7
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Merci encore pour ta réponse et ta patience

Ce code est presque parfait... Le problème qu'il y a c'est qu'il identifie la version à son premier niveau : il me renvoie la même chose pour Firefox 3.0 et Firefox 3.5 par exemple (à savoir "je suis sur Firefox 3")... du coup je ne peux pas faire de différence entre les deux et traiter le problème
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 15h19   #8
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
Citation:
Envoyé par Msieurduss Voir le message
Merci beaucoup pour ta réponse

Ce site a cependant quelques difficultés avec les jQuery j'ai l'impression... Il me renvoie une erreur, étrange puisqu'en lien avec l'usage basique du code jQuery :

Erreur*: $ is not a function
Fichier Source*: http://raudin.u-bordeaux3.fr/
Ligne*: 37


Erreur*: $ is undefined
Fichier Source*: http://raudin.u-bordeaux3.fr/
Ligne*: 112


Connais-tu ou sais-tu où trouver l'équivalent sans utilisation de jQuery ?
ces erreurs sont liées à l'abandon de la variable $ dans jQuery.noConflict() qui se trouve dans ton fichier http://raudin.u-bordeaux3.fr/wp-incl...y.js?ver=1.4.2
- soit tu utilises une version standard
- soit tu mets
Code javascript :
1
2
$ = jQuery;
$(document).ready(function() {...
opte pour la première solution

<edit>
au fait tant qu'à utiliser jQuery pourquoi ne pas utiliser jQuery.ajax()
</edit>
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 15h40   #9
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Exact en effet, $ = jQuery; fonctionne très bien. Merci beaucoup pour ton aide !

Pour jQuery.ajax, c'est vrai que je ne l'ai même pas utilisé pour une partie en ajax sur le site, faite à la mano... je maîtrise encore assez mal jQuery, surtout sur ce site là (un Wordpress) où les modules sont multiples et utilisent parfois plusieurs versions de jQuery... bref

Cela ne règle pas le problème de la version de Firefox, qui est bien détectée, mais pas dans le détail : impossible d'indiquer la différence entre 3.0 et 3.5...

(ce message aurait désormais + sa place dans le forum js peut-être )
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 16h02   #10
Rédacteur/Modérateur
 
Homme Jérome Debray
Responsable de projet
Inscription : mai 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Jérome Debray
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Responsable de projet
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 627
Points : 3 064
Points : 3 064
tiens j'ai refait le script, il donne la version entière :
Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
var version,string;
var detect = navigator.userAgent.toLowerCase();
function checkUA(str)
{
	position = detect.indexOf(str) + 1;
	string = str;
	return position;
}
window.onload = function(){
 
	if(checkUA('firefox')){
		alert(detect);
		if (!version) {
			version = detect.substring(position + string.length, detect.length);
			alert('voici la version : ' + version);
		}
	}
}
ornitho13 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/02/2011, 16h26   #11
Membre habitué
 
Inscription : juin 2006
Messages : 197
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2006
Messages : 197
Points : 114
Points : 114
Merci BEAUCOUP !!! Cela fonctionne nickel ! Je n'ai plus qu'à faire la condition et ça ira !

Super !
Msieurduss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h11.


 
 
 
 
Partenaires

Hébergement Web