Come già richiesto in un commento: perché lo vuoi? Lo sniffing del browser è una cattiva abitudine e ci sono solo alcune situazioni in cui è necessario.
Utilizzare invece il rilevamento delle funzioni. Come described by Nicholas Zakas, dovresti testare caratteristiche relativamente "non comuni" prima di usarle e fare affidamento solo su questi test, quindi sei un po 'sicuro.Ad esempio, fare
if (window.XMLHttpRequest)
var xhr = new XMLHttpRequest();
invece di
if ((brwsr.IE && brwsr.IE.version >= 7) || (brwsr.firefox) || (brwsr.opera))
var xhr = new XMLHttpRequest();
E anche non fanno
if (window.XMLHttpRequest)
// Hey, native XMLHttpRequest-support, so position: fixed is also supported
(invece, prova se position: fixed
è supportato)
Esistono diversi browser non comuni con nomi come Kazehakase e Midori che potrebbero, o non potrebbero, supportare queste funzionalità, quindi gli script funzioneranno silenziosamente su di essi quando si utilizza il rilevamento delle funzioni.
Ma si prega di leggere il mentioned article, in quanto contiene una spiegazione molto buona e approfondita di questa tecnica. (A proposito, penso che Zakas 'Professional JavaScript for Web Developers è ancora troppo sconosciuto.)
fonte
2010-02-24 18:46:27
Che cosa significa "è su un computer significare"? Vuoi anche rilevare iphone e altri dispositivi mobili? –
Perché vuoi saperlo? – Gumbo
perché il q dice se firefox AND è su un computer? L'è su un computer deve essere importante altrimenti non sarebbe lì .. dopo tutto il suo ridondante altrimenti. –