2010-11-18 22 views
5

Ho un sito Web e off-modo come la maggior parte dei siti Web che carica più velocemente in Firefox.Rilevamento affidabile del browser con javascript?

Voglio creare una forma di barra, che viene visualizzata in cima al mio sito, ogni volta che un utente senza FF entra nel sito. Questa barra indicherà qualcosa come "Installa FF per prestazioni migliori ecc. Ecc ..."

Come devo fare? Il rilevamento del browser credo, ma ci sono tonnellate di codici diversi là fuori. Qualunque codice tu sappia che è più affidabile e meglio da usare?

Btw, qualcuno sa se ho bisogno dell'autorizzazione di Mozilla per avere una tale barra sul mio sito web?

Grazie

EDIT: FF non è il browser più veloce, ho capito!

+0

IQ interludio ! Firefox si distingue da Lynx come una Ferrari per un ...... – thomaspaulb

+2

... jet da combattimento supersonico. – Quentin

+3

... con uno schermo radar basato su testo 80x25. – thomaspaulb

risposta

10

(Saltare tutti gli argomenti sopra se ciò che si vuole fare è una buona o una cattiva cosa. Dando per scontato che davvero come Firefox e vuole promuoverlo.)

  1. Utilizzare l'navigator oggetto da controlla se il browser è Firefox. navigator.appCodeName, navigator.appName, navigator.appVersion. Quello che vuoi fare non è una parte critica del tuo sito web, quindi non hai bisogno di un metodo di rilevamento sicuro. Se funziona per oltre il 95% degli utenti target rispetto al metodo è buono.

  2. Dubito che sia necessario il permesso per pubblicizzare un prodotto gratuito. Mozilla anche encourages per farlo.

1

Non penso sia una buona idea. Che dire di altri browser come Chrome o Safari? Al momento, Chrome è più veloce di Firefox (test Sunspider), quindi la tua affermazione "carica più velocemente in Firefox" non è propriamente corretta. Più veloce di cosa? Se intendi IE, esistono già soluzioni in tutto il Web per avvisare gli utenti di non utilizzare IE e passare a qualcos'altro. Non dovresti preferire un solo browser.

+0

Dipende dalla pagina web, carica i miei carichi più velocemente con FF. E non è solo la velocità che sto cercando, FF fa il lavoro meglio di Chrome, Safari con cui non sono così esperto. –

+3

Il tuo sito web non è un fiocco di neve unico. A meno che non si tratti di una dimostrazione tecnologica di funzionalità del browser all'avanguardia (nel qual caso il pubblico è abbastanza intelligente da riconoscere un titolo come "Dimostrazione della nuova proprietà di zolfo-odore di Firefox"), quindi non cambierò browser solo perché uno (che trovo, in generale, piuttosto lento) è apparentemente più veloce nel rendere il tuo sito quindi il mio browser preferito. Il tempo potrebbe essere speso meglio cercando di migliorare le prestazioni, magari profilando qualsiasi JS presente in altri browser per trovare dove sono le parti lente e migliorarle. – Quentin

6

jQuery ha browser detection.

Gli stessi jQuery dev sostengono che non è necessario selezionare nel browser, ma su quali funzioni sono supportate dal browser. Pertanto raccomandano invece browser feature detection. Ha senso.

+0

questo è stato rimosso in jQuery 1.9. –

2

Penso rilevamento del browser non è il modo giusto per risolvere alcuni problemi. Se il tuo codice è lento su altri browser, devi prima indagare sul motivo, pulire e ottimizzare il tuo codice, quindi se non lo risolvi potresti opzionalmente fornire una funzionalità ridotta per altri browser.

Ma per favore, evitare di suggerire all'utente che cosa dovesse installare nel suo computer di

+0

ok, nessun problema per downvote. Questo è quello che penso davvero. Il rilevamento del browser è l'ultima opzione, almeno per me. Non mi piace nascondere la polvere sotto il tappeto –

4

Non v'è alcun rilevamento del browser affidabile al 100%. L'accesso alla stringa userAgent fornita dal navigatore-oggetto non è affidabile mentre può essere falsificata dall'utente. L'accesso ad alcune proprietà che esistono solo in un browser speciale ora, può essere affidabile al momento, ma non in futuro, perché non si sa mai, se un altro browser applicherà questa proprietà a volte o la proprietà verrà rimossa dal browser nelle versioni future.

+2

Se l'utente contrae l'userAgent, allora è chiaro che non ha alcuna intenzione di cambiare browser. Quindi non è necessario alcun rilevamento in questo caso. Si noti che questo rilevamento è necessario solo per la promozione. Firefox non è effettivamente necessario per visualizzare il sito. –

4

Questo potrebbe non rispondere alla tua domanda, ma si può fare commenti condizionali nel codice HTML simile a questo:

http://www.quirksmode.org/css/condcom.html

È possibile utilizzare questo codice per rilevare qualsiasi versione di IE.

A meno che non venga assunto da Mozilla Foundation, non vedo perché gli utenti con Chrome e Safari e browser simili debbano essere avvisati con questo messaggio. Hanno fatto una scelta attiva e scelto il proprio browser, qualcosa che non si può dire della maggior parte degli utenti di IE che potrebbero non essere a conoscenza delle alternative. Principalmente, Internet Explorer è il problema.

Scusate se questo era leggermente fuori tema e se non era affatto utile.

/fine del rant morale)

2

Ok, quindi ho un -1, perché non mi piace Firefox o perché io non vi ho dato la soluzione in mano per di copiare e incollare? Beh, qui si va persone:

<!--[if IE]> 
Special instructions for IE 
<![endif]--> 

E in jQuery

if ($.browser.msie) 
8

Potreste essere interessati a questa pagina qui su spreadfirefox.com: http://www.spreadfirefox.com/affiliates/utw. Contiene un set di pulsanti Spread Firefox, ma quello che è più interessante è il codice che viene fornito con esso. Si noterà che l'immagine del pulsante effettivamente cambiare a seconda del browser di visualizzare su:

http://sfx-images.mozilla.org/utw/3.6/FF36_36_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_FF_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_IE_120x240.png http://sfx-images.mozilla.org/utw/3.6/FF36_OTHER_120x240.png

Guardando il Javascript code, si può vedere che stanno già facendo il lavoro per voi:

/* ********************************************* 
This code came from http://www.quirksmode.org/js/detect.html 
In order for this to function properly, it must be updated regularly 
***********************************************/ 

Quindi perché non modificare semplicemente il codice che hanno dato per funzionare con le immagini o il codice? O meglio ancora, usa uno dei loro ready-made?

Problemi correlati