2009-09-03 613 views
7

我試圖從普通用戶代理字符串中提取不僅瀏覽器及其版本號,還提取渲染引擎及其版本號。大多數瀏覽器報告這個就好了,如:Safari的用戶代理:哪個WebKit版本要信任?

  • 「的Mozilla/4.0(兼容; MSIE 8.0; Windows NT的6.0; 三叉戟/4.0)」

  • 「的Mozilla/5.0(視窗; U; Windows NT的6.0; EN-US; rv中:1.9.0.12壁虎/2009070611火狐/ 3.5.12"

Safari也報告WebKit版本號,但它似乎這樣做了兩次。下面是我自己的UA:

  • 「的Mozilla/5.0(窗口; U; Windows NT的6.1; EN-US)爲AppleWebKit/531.9(KHTML,例如Gecko)版本/ 4.0.3 Safari瀏覽器/ 531.9 .1

在這種情況下,似乎只有一個比另一個更詳細。

但是,當我看看Safari UA字符串的數據庫,例如useragentstring.com,這兩個版本往往完全不同。

  • 「的Mozilla/5.0(窗口; U; Windows NT的6.1; EN-US)爲AppleWebKit/532+(KHTML,例如Gecko)版本/ 4.0.2 Safari瀏覽器/ 530.19.1

  • 「的Mozilla/5.0(視窗; U; Windows NT的5.1; CS-CZ)爲AppleWebKit/525.28.3(KHTML,例如Gecko)版本/ 3.2.3 Safari瀏覽器/ 525.29

  • 「Mozilla/5.0(Windows ; U; Windows NT 5.1; EN-US)爲AppleWebKit/530.19.2(KHTML,例如Gecko)版本/ 4.0.2 Safari瀏覽器/ 530.19.1

  • 」 的Mozilla/5.0(在Macintosh; U;英特爾的Mac OS X 10_5_4; EN-US)爲AppleWebKit/528.4+(KHTML,例如Gecko)版本/ 4.0dp1 Safari瀏覽器/ 526.11.2

等等

我該使用哪一種呢?這不是一個主要問題,但只是想知道,謝謝!

回答

10

AppleWebKit/xxx部分將告訴您正在使用哪個渲染引擎。 Version/xxx Safari/xxx部分告訴您正在使用哪個版本的「瀏覽器前端」。

Webkit nightly builds使用最新的夜間渲染引擎進行渲染,運行當前安裝的Safari前端。這就是爲什麼您可以使用相同的Version/xxx Safari/xxx獲得不同的AppleWebKit/xxx號碼。

+0

太棒了,謝謝! – 2009-11-09 06:14:57

+0

Javascript功能(例如,XMLHttpRequest行爲)依賴於渲染引擎或「瀏覽器前端」?我會認爲這是渲染引擎的一部分(也就是AppleWebKit)。 – 2010-09-10 10:52:11

+0

我喜歡你的網站,edds – CRice 2011-05-23 04:10:45