360浏览器的判断技巧

作为前端,浏览器判断是必不可少的。通常我们都是通过Useragent字符串来匹配浏览器特征,判断出用户使用的是什么浏览器。然后360浏览器因为市场竞争的问题,把自己的Useragent隐藏起来,伪装成Chrome和IE(虽然本来就是个外壳)。只有360自己的网站支持显示正常的UA。这给浏览器识别带来了很大的障碍,于是寻找360浏览器特征就成了解决问题的关键。

在网上我也找了很多识别方法,然而几乎都不能用了!

方案1:

if((window.navigator.mimeTypes[40] || !window.navigator.mimeTypes.length)){

alert("360浏览器!");

}

然后测试了一下,搜狗高速也判断通过了!

方案2:

if(window.external&&window.external.twGetRunPath&&window.external.twGetRunPath().toLowerCase().indexOf("360se")>-1){ alert('本站不支持360浏览器访问,请更换其他浏览器!');}

测试无效!

方案3:

请求res://360se.exe/2/2025方式判断(具体代码可以百度看看,反正无效)

测试无效

方案4:

var is360 = (function(option, value){

var mimeTypes = navigator.mimeTypes;

for (var mt in mimeTypes) {

if (mimeTypes[mt][option] == value) {

return true;

}

}

return false;

})("type", "application/vnd.chromium.remoting-viewer");

这个方案目前看还是有效的,但是因为太长还有文章说部分浏览器还是会有误判


于是乎,自己在window变量里面找机会,找了一个下午终于找到了还算有效的判断方式:

var is360 = window.showModalDialog&&window.chrome;

只要是chrome内核的360浏览器都能识别出来,而且其他国内常见的浏览器并没有匹配到!showModalDialog是一个古老的方法,IE浏览器中是存在的,但是Chrome早就删除了(或者从来没有存在过),不知道360为什么会加上去……

浏览器测试演示地址:http://passer-by.com/browser/

感兴趣的还可以关注我的项目:https://github.com/mumuy/browser

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,570评论 1 19
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,807评论 0 8
  • 转载 前端开发面试题 <a name='preface'>前言</a> 本文由我收集总结了一些前端面试题,初学者阅...
    小九喵喵阅读 485评论 0 0
  • 今天知道了一首很好玩的歌,歌词的画风是这样的: 有一晚上作场大梦,躺在空中不能动,我好像看见苏三打从山尖儿往下冲,...
    举个疯子阅读 725评论 0 0
  • 一圈又一圈, 生活如一潭死水, 你扔了块石头,却连一阵涟漪也无法激起。 人们是何其繁忙, 以致都忘记了抬头看天空,...
    叔丙仄阅读 204评论 0 2