2011-10-14 12 views
5

Sto cercando di implementare una funzionalità di supporto del browser sulla mia pagina web. Per Firefox 3.6 sta funzionando bene, ma per qualche motivo l'utente di IE 8 restituisce un valore errato.Perché IE 8 navigator.userAgent restituisce MSIE 7.0?

Ecco lo scenario, quando eseguo un codice javascript "locale" su IE8, navigator.userAgent restituisce informazioni corrette (MSIE 8.0). Ma quando eseguo questo script su un server, restituisce MSIE 7.0 su un browser IE 8.

Qualche idea?

+2

se sono sniffare gli interpreti, si sta facendo male e si sta andando ad avere un sacco di problemi del genere. dovresti usare la funzione di rilevamento, ma potresti anche solo impostare i commenti condizionali per ie7 e ie8 e cambiare qualche css per vedere cosa sta succedendo. – albert

+1

L'uso del rilevamento delle funzionalità rispetto allo sniffing del browser sarebbe più affidabile, ci sono un sacco di librerie là fuori, prova [questa ricerca Google] (http://www.google.co.uk/webhp?sourceid=chrome-instant&ie=UTF -8 & ioni = 1 & Nord = 1 # sclient = psy-ab & hl = it & safe = off & Nord = 1 & sito = webhp & source = HP & q = javascript + funzione + rilevazione + libreria & PBX = 1 & oq = javascript + funzione + rilevazione + libreria & aq = f & AQI = q-W1 & AQL = 1 & gs_sm = e & gs_upl = 57834l58466l1l58566l8l4l0l0l0l0l253l658l1.1.2l4l0 & bav = on.2, or.r_gc.r_pw., Cf.osb & fp = 64c9fa8ed75e2609 & ion = 1 & biw = 1680 & bih = 865) – Clive

+1

Il server è sulla rete locale o su Internet? IE8, per impostazione predefinita, finge di essere IE7 [durante la navigazione nei siti intranet] (http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%29.aspx). – robertc

risposta

4

Sei sicuro di non essere in esecuzione in modalità IE7? Puoi cambiarlo da qualche parte nelle impostazioni dello sviluppatore (F12, credo).

+0

intendi la "modalità di compatibilità". Sì, è probabile, perché in javascript, usando la libreria di Douglas Crockfords, puoi rilevarlo, ma sul server non hai alcuna possibilità. – TMS

6

è necessario controllare Trident Token troppo.

Trident gettone

Quando si utilizzano gli strumenti F12 sviluppatori per cambiare la modalità del browser di Internet Explorer, la versione del token della stringa user-agent viene modificato per apparire in modo che il browser sembra essere una versione precedente. Questo viene fatto per consentire che il contenuto specifico del browser venga offerto a Internet Explorer e di solito è necessario solo quando i siti web non sono stati aggiornati per riflettere le versioni correnti del browser.

In questo caso, un token Trident viene aggiunto alla stringa user-agent. Questo token include un numero di versione che consente di identificare la versione del browser, indipendentemente dalla modalità corrente del browser.

PIÙ: http://msdn.microsoft.com/en-us/library/ms537503.aspx

Problemi correlati