2015-07-20 11 views
18

L'agente utente per i browser Edge o Spartan è già noto? Qualcuno può dirmi come rilevare questo browser e differirlo da IE prima della sua uscita?Rilevamento di Edge o spartan di Microsoft con javascript

+0

_ [rilevamento del browser è inappropriato] (https://css-tricks.com/browser-detection-is-bad/) ._ – Cerbrus

+16

Chi se ne frega? È ancora una domanda che voglio sapere la risposta a :) Ricerca ... – kieranpotts

+0

@Cerbrus, lo so, ma in questo caso non posso evitare di farlo. Inoltre, ci sono migliaia di domande riguardanti il ​​rilevamento, ad esempio 9. 10 o 11, e non so perché questo non sia legittimo. – Vandervals

risposta

16

Una semplice ricerca su google mi ha trovato la risposta che state cercando: http://forum.piwik.org/read.php?3,125732

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 

Pertanto si dovrebbe abbinare: "Edge\/\d+" stringa

+0

quindi, dovrei corrispondere ' "Edge/12.0" '? – Vandervals

+2

Dovresti associare "Bordo /" seguito da un valore numerico. Il numero di versione cambierà nel tempo. – kieranpotts

+0

Solo per imparare un po 'su queste cose ... perché questo agente utente utilizza anche CHrome e Safari? Potrebbe non generare errori in futuro durante il tentativo di rilevare questi due browser? – Vandervals

3

Microsoft Edge UA:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, come Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

I detail why in this blog post.

Neowin ha recentemente riferito che il nuovo browser di Microsoft per Windows 10, Spartan, utilizza la stringa Chrome UA, “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, come Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 ".Questo è fatto apposta.

Si noterà inoltre che l'intera stringa termina con "Edge/12.0", che non è Chrome.

Devo sottolineare che non si tratta di una distinzione da ciò che Microsoft ha fatto con IE 11, che su Windows 8 recita: Mozilla/5.0 (Windows NT 6.3, Trident/7.0; rv: 11.0) come Gecko, come spiegato in questo post.

Che cos'è lo sniffing di User Agent?

Spesso gli sviluppatori Web eseguono lo sniffing per il rilevamento del browser. Mozilla lo spiega bene sul proprio blog:

L'utilizzo di pagine Web o servizi diversi per browser diversi è in genere una cattiva idea. Il Web è pensato per essere accessibile a tutti, indipendentemente dal browser o dal dispositivo che stanno utilizzando. Ci sono modi per sviluppare il tuo sito Web per migliorare progressivamente se stesso in base alla disponibilità delle funzionalità piuttosto che al targeting di browser specifici.

Here’s a great article explaining the history of the User Agent.

Spesso, gli sviluppatori pigri sarà solo annusare la stringa UA e contenuti disabilitare sul loro sito web basato su browser che credono lo spettatore sta usando. Internet Explorer 8 è un punto comune di frustrazione per gli sviluppatori, quindi controllano frequentemente se un utente utilizza QUALSIASI versione di IE e disabilita le funzionalità.

The Edge team details this even deeper on their blog.

tutti gli agenti stringhe utente contengono ulteriori informazioni su altri browser che il browser attuale che si sta utilizzando - non solo gettoni, ma anche numeri di versione ‘significativo’.

Internet Explorer 11 di stringa UA:

Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv: 11.0) come Gecko

Microsoft Edge UA stringa:

Mozilla/5.0 (Windows NT 10,0) AppleWebKit/537,36 (KHTML, come Gecko) Chrome/Safari 42.0.2311.135/537,36 Bordo/12,10,136 mila

La proprietà userAgent è stata giustamente descritta come "un pacco di bugie in continua crescita" di Patrick H. Lauke nelle discussioni del W3C. ("O meglio, un atto di bilanciamento di aggiungere abbastanza parole chiave legacy che non avranno immediatamente il vecchio codice di sniffing UA che cade, pur cercando di trasmettere un po 'di informazioni effettivamente utili e accurate.")

Si consiglia che gli sviluppatori web evitano di sniffare UA il più possibile; le moderne funzionalità della piattaforma Web sono quasi tutte rilevabili in modo semplice. Nell'ultimo anno, abbiamo visto alcuni siti di sniffing UA che sono stati aggiornati per rilevare Microsoft Edge ... solo per fornirgli un percorso di codice IE11 legacy. Questo non è l'approccio migliore, in quanto Microsoft Edge corrisponde ai comportamenti di "WebKit", non ai comportamenti di IE11 (eventuali differenze di Edge-WebKit sono bug che siamo interessati a risolvere).

In base alla nostra esperienza, Microsoft Edge funziona meglio sui percorsi di codice "WebKit" in questi siti. Inoltre, con la disponibilità di Internet su una più ampia varietà di dispositivi, si supponga che i browser sconosciuti siano buoni: si prega di non limitare il sito a lavorare solo su un piccolo insieme di browser correnti conosciuti. Se lo fai, il tuo sito quasi certamente si romperà in futuro.

Conclusione

Presentando la stringa Chrome UA, siamo in grado di aggirare gli hack questi sviluppatori stanno usando, per presentare la migliore esperienza per gli utenti.

1

Cercare "Edge" nella stringa UA.

Mentre nelle menti degli addetti al marketing il mondo è perfetto, in realtà i browser hanno bug che rimangono non fissati per anni e sarà sempre così.

Nel mio caso il problema che mi ha richiesto di testare Edge contro Chrome è il bug dell'altezza dropdown di Chrome che Spartan/Edge rende correttamente. Microsoft non ha nulla da sistemare qui e Google ha ignorato questo bug per oltre un anno (era correttamente visualizzato nelle vecchie versioni di Chrome).

4

Secondo this answer: opzione basata

// Internet Explorer 6-11 
var isIE = /*@[email protected]*/false || !!document.documentMode; 
// Edge 20+ 
var isEdge = !isIE && !!window.StyleMedia; 
0

Un'altra caratteristica di rilevamento.

function isBrowserEdge() { 
    return typeof CSS !== 'undefined' && CSS.supports("(-ms-ime-align:auto)"); 
} 
Problemi correlati