美文网首页
360浏览器的判断技巧

360浏览器的判断技巧

作者: 掉鏈自行車 | 来源:发表于2017-05-27 08:36 被阅读0次

    作为前端,浏览器判断是必不可少的。通常我们都是通过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

    相关文章

      网友评论

          本文标题:360浏览器的判断技巧

          本文链接:https://www.haomeiwen.com/subject/dpbffxtx.html