2013-12-18 32 views
2

有什麼方法可以檢測用戶是否使用Blink或Webkit驅動的Chrome引擎?順便說一句,我也很好奇,如果我可以檢查某個地方,如果我的瀏覽器閃爍或不閃爍。如何檢測Chrome中的閃爍

+0

你想檢查這個? Javascript或服務器端編程語言。 – Seb

+0

兩者都可以。 – wintercounter

回答

5

Blink是Chrome 28+。 所以,如果你已經通過它的useragent檢測到Chrome,你可以檢查:version >= 28顯然,如果用戶代理被欺騙,它並不是完全可靠的。

對於您可以檢查這成爲可用的 chrome.notifications API狀態/帶閃爍/ Chrome28 +(Chrome操作系統,Windows和Mac的,然後是Android 4.4)

看到這個 answer對裁判穩定的額外更可靠的方式,和這 documentation的細節。

更新:以前的想法是複雜和不可靠的。我刪除它。

我跑進這與Chrome的28(即CSS.supports),這是更容易和更清潔的增加了一個功能:

if ((window.chrome || (window.Intl && Intl.v8BreakIterator)) && 'CSS' in window){ 
//Blink Engine 
} 

更新2:增加了額外的檢查,因爲一些閃爍的瀏覽器如Opera Mobile或傲遊缺乏window.chrome對象。 v8功能檢查對於涵蓋截至2014年12月的所有當前Blink引擎瀏覽器都是必要的。

爲了完整起見,您還需要一個服務器端編程語言: 在服務器端甚至是JS最終,只需查找WebKit/537.36。只有Blink用戶代理才具有該Webkit版本。據我所知,沒有官方的Safari版本以該內部版本號發佈。但是,請注意IEMobile,TridentEdge標記,因爲Windows IE now imitate Android and Blink

+0

那麼,'537.36'對於Blink來說是否會成爲Chromium和Opera的可靠檢查? – mightyiam

+1

@ShaharOr如果userAgent沒有被欺騙,是的。您可以從* legit *用戶看到的唯一潛在的誤報情況是,如果他們在可能欺騙Blink代理的移動設備上使用桌面模式。 – hexalys

+1

@ShaharOr只是測試它 - 測試window.CSS'適用於Opera Blink以及:) – pilau