打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
偏门方法解决无法判断360浏览器的问题

由于360浏览器去掉了UA信息,所以使用UA信息是无法判断用户是否使用的是360安全浏览器,可以建个demo页面,代码如下,在360安全浏览器下跑下:

1
alert(navigator.userAgent.toLowerCase());

在明河的机子上打印消息如下:

1
mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; wow64; trident/5.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; media center pc 6.0; .net4.0c; .net4.0e; infopath.3)

从UA信息中,我们找到了 msie 9.0,但不存在se360

感慨下360浏览器就是个流氓!网上的抓“流氓”的方法过于“文明”,“流氓”已经免疫,制服“流氓”就要采用些非常手段。

非常感谢特木同学提供了该方法的实现思路,再感慨下,真乃鬼才!此方法过于龌蹉,慎用!

利用res://360se.exe/2/2025这张图片的存在性进行判断

res://360se.exe/2/2025这张图片,只有在se360下才能正常读取出来,所以可以通过js加载这张图片,然后通过判断图片大小,予以确认是否是se360。

KISSY版解决代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * 360浏览器隐藏了ua信息,无法判断是否是360浏览,这是临时方案
 */
function se360Ua(){
    //360浏览器混杂在IE中
    if(KISSY.UA.shell != 'ie') return false;
    var img = new Image();
    img.onload=function(){
        if(img.fileSize > 0) KISSY.UA.shell = 'se360';
    };
    img.src = 'res://360se.exe/2/2025';
}
se360Ua();
KISSY.later(function(){
    alert(KISSY.UA.shell);
},1000)

覆写KISSY.UA.shell,留意:图片加载需要一些时间,所以获取时候要加适当延迟。

原生js版解决代码:

1
2
3
4
5
6
7
8
9
10
11
12
function isSe360(){
    var ua = navigator.userAgent.toLowerCase();
    //全局变量
    IS_360 = false;
    if(!ua.match(/msie ([\d.]+)/)) return IS_360;
    var img = new Image();
    img.onload=function(){
        if(img.fileSize > 0) IS_360 = true;
    };
   img.src = 'res://360se.exe/2/2025';
}
isSe360();

此方法,风险很大,因为res://360se.exe/2/2025图片很可能会失效,或者因为使用该方法的人太多,导致图片无法访问,就会出现判断失效的情况,所以慎用!!!

再次吐槽:蛋疼的国产浏览器。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
js判断当前浏览器是否是360浏览器?
用python写个类似浏览器的下载器,超简单的
教您制作移动图片
手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇
QQ浏览器更改浏览器UA标识的方法
让IE7兼容IE8DIV+CSS
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服