2011-07-08 1 views
1

Voici l'affaire. J'ai créé des tableaux de bord HTML/Javacript qui seront affichés sur les grands écrans. Les écrans sont alimentés par des clients légers exécutant WinXP et Firefox 4. Il y aura aussi une version de bureau. Je voudrais utiliser une url (dashboard.php), puis rediriger vers la page appropriée. Je dois pouvoir faire la différence entre les grands écrans et quelqu'un utilisant Firefox depuis le bureau. Ma pensée était de changer de façon permanente la chaîne UserAgent sur les déploiements sur grand écran et d'utiliser le reniflage du navigateur pour déterminer la version à transférer également. Le problème est, il semble que FF4 a enlevé la possibilité de changer la chaîne UA de façon permanente. N'importe qui a des idées sur la façon dont je pourrais faire cela ou une idée sur la façon dont je peux différencier les grands écrans et les utilisateurs de bureau. Qu'en est-il de l'utilisation de l'adresse IP des ordinateurs qui s'affichent sur les grands écrans?Modification permanente de la chaîne UserAgent dans Firefox 4

Répondre

1

En particulier si les grands écrans sont sur un réseau interne, attribuez-leur une adresse IP statique et utilisez-les pour identifier les ordinateurs. Autre que cela, il suffit de passer une chaîne get en disant ?view=bigDisplay ou similaire. Vous pouvez simplement mettre dans votre code

$bigDisplay = (isset($_GET['view'])&&$_GET['view']=='bigDisplay'); 

alors vous auriez un booléen si pour afficher le code bigDisplay.

Edit: aussi, juste googlé et trouvé ceci: http://support.mozilla.com/en-US/questions/806795

+0

J'essayais d'éviter d'utiliser un paramètre de chaîne de requête afin d'avoir une URL simple. J'ai également vu cet article aussi, donc je vais essayer. L'adresse IP est une possibilité, bien que je doive vérifier auprès de l'administrateur réseau comment obtenir des adresses IP statiques pour ces périphériques. Ils utilisent normalement DHCP. – Donavan

+0

J'ai essayé le paramètre general.useragent.override dans environ: config et cela semblait le faire. Merci pour le conseil. – Donavan

+0

Nous utilisons de grands affichages dans notre lobby. Le navigateur est en mode plein écran, l'URL n'est visible par personne. Aussi la façon dont j'ai suggéré d'utiliser la chaîne de requête, il aurait seulement besoin d'être sur les ordinateurs d'affichage. Tous les autres ordinateurs n'auraient pas besoin de la chaîne de requête pour fonctionner. –

0

Si la détection d'adresse IP n'est pas une option, vous pouvez simplement définir un cookie pour les grandes machines à écran.

Vous pouvez le faire en créant une URL spéciale, par exemple /bigscreen, qui définira le cookie avec une date d'expiration éloignée dans le futur. Ensuite, dans votre script, vérifiez simplement l'existence de ce cookie. L'utilisation d'un cookie signifie que vous n'avez pas à vous soucier de continuer à ajouter des chaînes de requête aux URL suivantes.

Editer: Vous pouvez même placer le cookie manuellement dans Firefox si vous souhaitez éviter de visiter une URL spéciale. Il y a des ajouts pour faciliter cela.

+0

Encore une fois, cela nécessite toujours des URL séparées pour le bureau et la version grand écran. C'est ce que j'essaie d'éviter. – Donavan

+0

@Donavan: Ce que je veux dire, c'est que c'est tout autant d'effort pour modifier la chaîne de l'agent utilisateur dans le navigateur que de visiter une seule URL en même temps. Vous pouvez même placer manuellement le cookie dans Firefox si vous le souhaitez. – webbiedave

+0

La configuration manuelle du cookie peut être une option. Je vais devoir regarder ça. Je dois tester les redémarrages du navigateur et de la machine pour m'assurer que le cookie persiste. – Donavan

0

Javascript

if((screen.width >= 1024) && (screen.height >=768)) 
{ 
    window.location= '?big=1'; 
} 

PHP

if($_GET['big'] == 1){ 
    setcookie('big', 1, 0); 
} 

Ensuite, il suffit de lire cookie et c'est ça ...

+0

Les tests de taille d'écran ne sont pas suffisamment fiables pour permettre de distinguer les deux scénarios. La définition du cookie nécessite toujours un paramètre de chaîne de requête ou une URL différente pour savoir quand le définir. – Donavan

+0

@Donavan, alors le problème est? –

0

Vous pouvez définir la chaîne UA très bien dans Firefox 4. La préférence general.useragent.override vous permettra de le définir comme vous le souhaitez.

Ce qui a été supprimé était un moyen de modifier des parties de la chaîne UA sans surcharger le tout.