如何通過JS檢測360瀏覽器?
嘗試了一大堆方法,網上大多數辦法都是通過navigator.userAgent來判斷,這可能在幾年前是行得通的,現在360userAgent輸出來跟谷歌除了版本號其余一模一樣...
谷歌: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
360極速:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
360安全:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
但是,在有360網站下輸出navigator.userAgent,能判斷出360極速和360安全瀏覽器:
360極速:"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36 QIHU 360EE"
360安全:"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 QIHU 360SE"
這就是360坑的地方....
在其它域名下檢測,userAgent返回的全是原生的谷歌瀏覽器的userAgent,而在360相關域名下就含有360自己的標識。
所以現在想要通過userAgent來檢測360是檢測不出來的。
360更改了UserAgent之后,無法從用戶代理識別了,360瀏覽器到了8(安全8和極速8)以后,版本號隨着Chrome而升級,難以判斷了。
網上其它的方式測試幾乎都不行,就不寫出來了。
偶然間發現一個可以判斷是360瀏覽器的mimeType(媒體類型),type: "application/vnd.chromium.remoting-viewer"
在360極速瀏覽器>幫助>關於360瀏覽器,彈出如下:經過測試,只有在360瀏覽器中才會有輸出chromium這個標識,但是也不能100%確定檢測出的一定是360瀏覽器。
貼出代碼:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 4 <head> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <title>瀏覽器檢測</title> 7 </head> 8 9 <script> 10 window.onload = function () { 11 12 //application/vnd.chromium.remoting-viewer 可能為360特有 13 var is360 = _mime("type", "application/vnd.chromium.remoting-viewer"); 14 15 if (isChrome() && is360) { 16 alert("檢測到是360瀏覽器"); 17 } 18 } 19 //檢測是否是谷歌內核(可排除360及谷歌以外的瀏覽器) 20 function isChrome(){ 21 var ua = navigator.userAgent.toLowerCase(); 22 23 return ua.indexOf("chrome") > 1; 24 } 25 //測試mime 26 function _mime(option, value) { 27 var mimeTypes = navigator.mimeTypes; 28 for (var mt in mimeTypes) { 29 if (mimeTypes[mt][option] == value) { 30 return true; 31 } 32 } 33 return false; 34 } 35 </script> 36 37 <body> 38 </body> 39 40 </html>
如果大家有什么更好的方法,分享下吧!
還有好像無法區分360安全瀏覽器和360極速瀏覽器,哎╮(╯▽╰)╭