http://loo2k.com/blog/detect-chrome-core-360-browser/
由於眾所周知的原因,360 瀏覽器(包括安全瀏覽器和極速瀏覽器)都將自己的 userAgent 偽裝成了 Chrome 或者 Internet Explorer,導致前端工程師們在對瀏覽器做差異化處理的時候不能做出正確的判斷。
如果你不知道為什麼 360 瀏覽器要修改自己的 userAgent 偽裝成其他瀏覽器的話,可以參考我在知乎上的回答「360 瀏覽器佔有率從 2012 年 7 月的 22.53% 驟降到 9 月的 2.44%,原因是什嗎?」,裡面大概的講解了 360 瀏覽器修改 userAgent 的曆史。
這篇文章的主要目的是介紹判斷 Chrome 核心的 360 瀏覽器(包括 360 安全瀏覽器超速版和 360 瀏覽器極速版),5.0 版的 IE 核心可以參考 http://segmentfault.com/q/1010000000117437 給出的辦法(但是此方法在超速版 6.0 上已經失效)。
此方法根據 360 瀏覽器使用了跟 Chrome 瀏覽器不同的 Flash 外掛程式的原因來判斷瀏覽器是否 Chrome 核心的 360 瀏覽器。
為 360 極速瀏覽器(360 安全瀏覽器相同)中 Flash 外掛程式的資訊:
為 Chrome 瀏覽器 Flash 外掛程式的資訊:
不知道你看到那個瀏覽器中 Flash 外掛程式的區別了沒有,360 瀏覽器外掛程式描述是「Adobe Flash movie」,而 Chrome 瀏覽器的外掛程式描述是「Shockwave Flash」。然後,你懂的。。。
判斷 Chrome 核心的 360 瀏覽器:
function isChrome360(){if( navigator.userAgent.toLowerCase().indexOf('chrome')>-1){var desc = navigator.mimeTypes['application/x-shockwave-flash'].description.toLowerCase();if( desc.indexOf('adobe')>-1){returntrue;}}returnfalse;}alert(isChrome360());
目前想到的只有 Chrome 判斷,過段時間有空再研究一下 360 瀏覽器在使用 IE 核心的情況下應該怎麼判斷。