Salut a tous,

J'utilise sur mon site une bibliotheque JS du nom de dhtmlhistory qui pose des problemes sous Chrome et IE, j'ai donc un index.php pour FF et un index2.php pour IE et Chrome.

Mais comment detecter le navigateur afin de charger la bonne version ? Dans mon cas il vaudrait mieux que la detection soit, en plus, infallible.
Pas mal, mais la variable PHP utilisée dans ce code, $_SERVER["HTTP_USER_AGENT"], donne le meme resultat pour Chrome et FF !
Bonjour,

apericube a écrit :
J'utilise sur mon site une bibliotheque JS du nom de dhtmlhistory qui pose des problemes sous Chrome et IE, j'ai donc un index.php pour FF et un index2.php pour IE et Chrome.

C'est ce qu'on appelle une mauvaise pratique. Bonjour le casse-tête de maintenance avec deux versions complètement différentes.

La détection du navigateur est, en règle générale, une mauvaise pratique aussi. En JavaScript, la détection des fonctionnalités est déjà plus intéressante, même si elle peut avoir ses limites.

Vu que les problèmes semblent venir de la bibliothèque JavaScript utilisée, mon conseil sera: ne pas utiliser un script non maintenu ou incompatible avec des navigateurs existants. Il y a sans doute d'autres scripts disponibles pour arriver à tes fins, ou bien avec une connaissance suffisante de JavaScript tu devrais pouvoir coder toi-même ce dont tu as besoin.
Je connais aucune alternative a dhtmlhistory malheureusement et je suis un debutant en JS.

J'ai mis meme pas 20 minutes a faire une version Ajax-free de mon index.php et je dirais 10 minutes pour adapter quelques autres pages. On peut pas vraiment appeller ca un casse-tete!
apericube a écrit :
Pas mal, mais la variable PHP utilisée dans ce code, $_SERVER["HTTP_USER_AGENT"], donne le meme resultat pour Chrome et FF !


Oh... avec quelle version de PHP ?

function is_chrome()
{
return(eregi("chrome", $_SERVER['HTTP_USER_AGENT']));
}
 
if(is_chrome())
{
// do something if its chrome
 
echo 'You are using Google Chrome Browser.';
}

Oups l'URL que j'ai pasté a ete filtré. Le code qui s'y trouve est similaire a celui que tu donnes:

$(document).ready(function () {
		var userAgent = navigator.userAgent.toLowerCase();
		jQuery.browser = {
			version: (userAgent.match( /.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/ ) || [])[1],
			chrome: /chrome/.test( userAgent ),
			safari: /webkit/.test( userAgent ) && !/chrome/.test( userAgent ),
			opera: /opera/.test( userAgent ),
			msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
			mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
		};
		$.each($.browser, function(i, val) {
		 $("<div>" + i + " : <span>" + val + "</span></div>")
			.appendTo(document.body);
		});
});

Modifié par apericube (09 Aug 2009 - 12:59)