Comment détecter un visiteur sous NoteBook ?

WRInaute discret
Bonjour,

Existe t'il un moyen de détecter les utilisateurs de Notebook (EEPC, ....) afin de les rediriger sur une version adaptée du site ? (Rem : Je ne suis pas sur qu'il existe un USER_AGENT spécifique pour les Notebook :roll: )

Par exemple pour une utilisateur iPhone / iPod, j'utitilse le code de redirection PHP suivant :

Code:
if ( strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod') )  
{      
 header('Location: http://iphone.monsite.com);      
 exit();  
}
 
WRInaute accro
cnhx a dit:
Bonjour,
Existe t'il un moyen de détecter les utilisateurs de Notebook (EEPC, ....) afin de les rediriger sur une version adaptée du site ? (...)
Si le notebook est un PC standard (mêmes OS, mêmes navigateurs), la seule différence sera dans les dimensions de l'affichage. Avec un design fluide (flottant), pas besoin de version adaptée.
 
WRInaute discret
C'est là mon petit souci, j'ai fait un menu flottant sur la page météo de mon site (http://www.ville-arnieressuriton.com/meteo/prevision-meteo-departement ... -Eure.html) mais voilà sur un NoteBook l'écran étant plus petit, je ne vois pas l'intégralité du menu. Sick :|

Je voulais donc détecter afin que dans le cas d'une consultation via un NoteBook, je ne fais pas de menu flottant.

Mais comme tu l'indique le NoteBook est vu comme un PC standard ! donc je suis coincé :?
 
WRInaute impliqué
le seule moyen c'est un js qui va redirigé en fonction de la largeur de l'écran du client, ou bien aussi recharger la page avec une variable genre ?display=mini
mais bon y a plus que les eepc 701 pour afficher du 800 px de large, depuis c'est 1024 est là chez moi çà passe ...
 
WRInaute discret
le pb, ce n'est pas la largeur mais la hauteur de l'écran du client. Sur des 10 pouces mon menu est trop grand en hauteur :wink:
 
WRInaute impliqué
ah ok, sur 8,9 c'est aussi 600 ... Si tu étais joueur et vu que ton menu au final fait à peine plus de 400px de haut, tu modifie légèrement le script pour que le menu remonte tout en haut de la page lorsque le header n'est plus visible ;-)
 
WRInaute discret
Excellente idée ! que je vais creuser ....
Allez et j'en profite :roll: , tu n'aurais pas une petite idée de savoir comment déterminer quand le header n'est plus visible ?
 
WRInaute impliqué
julienr a dit:
ton script utilise un framework y a peut être une doc associée ...

je me répond apparement pas de doc, mais bon dans JSFX_Browser.js :

Code:
JSFX.Browser.getMinY		= function() {return(document.body.scrollTop);}

alors du coup :

Code:
if(this.baseY > 0)
		targetY = JSFX.Browser.getMinY() + this.baseY;
	else
		targetY = JSFX.Browser.getMaxY() + this.baseY;

à remplacer par :

Code:
if(this.baseY > 0)
{
		if( JSFX.Browser.getMinY() > this.baseY )
		{
				targetY = JSFX.Browser.getMinY();
		}
		else
		{
				targetY = JSFX.Browser.getMinY() + this.baseY;
		}
}
else
{
		targetY = JSFX.Browser.getMaxY() + this.baseY;
}
 
WRInaute impliqué
euh je vois pas la modif en ligne, es-tu sûr que cela fonctionne au moins, car je n'ai pas cherché à tester ce que j'ai écris non plus ... ?
 
WRInaute discret
La prochaine étape sera d'avoir cette page météo sur mobile (avec un nom de domaine .mobi par ex.) mais là c'est une autre affaire. Car vu la taille de l'écran , je pense qu'il va falloir revoir toute la mise en page !
 
WRInaute discret
Bjr, j'aurais de nouveau besoin de conseils

En effet si dans la page je mets :

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

Eh bien, cela ne scroll plus ! :x

J'ai beau chercher je ne vois pas le pourquoi ! :roll:
 
WRInaute impliqué
il faut utiliser documentElement en dtd strict

remplace ceci :

Code:
JSFX.Browser.getMinY      = function() {return(document.body.scrollTop);}

par

Code:
JSFX.Browser.getMinY      = function() {
if (document.documentElement && document.documentElement.scrollTop)
   return document.documentElement.scrollTop;
else if (document.body && document.body.scrollTop)
   return(document.body.scrollTop)
}

ensuite çà devrait rouler dans tous les cas.
 
WRInaute discret
Je pense que j'ai trouvé.
En effet en simplifiant de la manière suivante çà passe sous IE :
Code:
JSFX.Browser.getMinY      = function() {
if (document.documentElement && document.documentElement.scrollTop)
		return document.documentElement.scrollTop;
else return document.body.scrollTop;
}

Merci de ton aide :wink: (Reco)
 
WRInaute discret
Faut voir, je n'ai que IE 7.
Si une personne pouvait tester avec IE 6 cela serait super :D
 
Discussions similaires
Haut