通过JS检测360浏览器
如何通过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浏览器。
贴出代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>浏览器检测</title>
</head> <script>
window.onload = function () { //application/vnd.chromium.remoting-viewer 可能为360特有
var is360 = _mime("type", "application/vnd.chromium.remoting-viewer"); if (isChrome() && is360) {
alert("检测到是360浏览器");
}
}
//检测是否是谷歌内核(可排除360及谷歌以外的浏览器)
function isChrome(){
var ua = navigator.userAgent.toLowerCase(); return ua.indexOf("chrome") > 1;
}
//测试mime
function _mime(option, value) {
var mimeTypes = navigator.mimeTypes;
for (var mt in mimeTypes) {
if (mimeTypes[mt][option] == value) {
return true;
}
}
return false;
}
</script> <body>
</body> </html>
如果大家有什么更好的方法,分享下吧!
还有好像无法区分360安全浏览器和360极速浏览器,哎╮(╯▽╰)╭
最新文章
- javascript、正则的验证
- python 线程之_thread
- win8.1 cygwin编译java轻量虚拟机avian
- Web Capacity Analysis Tool 压力测试工具使用笔记
- jquery ajax对特殊字符进行转义防止js注入使用示例
- Spring之SpringMVC的Controller(源码)分析
- 设计模式之建造者模式(Builder)
- IOS开发中UIFont字体设置
- 搭建DNS服务
- Mongodb 3 查询优化(慢查询Profiling)
- pycharm中连接数据库常见问题
- C语言数据结构基础学习笔记——栈和队列
- studio之mac快捷键
- MD5加密算法中的加盐值 ,和彩虹表攻击 防止彩虹表撞库
- HDU 1712 ACboy needs your help(分组背包入门题)
- org.codehaus.xfire.fault.XFireFault: Could not read XML stream.. Nested exception is javax.xml.strea
- 【洛谷】P1313 计算系数(快速幂+杨辉三角)
- leetcode812
- Selenium2学习(十)-- iframe定位
- Caused by: java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
热门文章
- 在mac电脑上创建java的一些简单操作
- [TCPIP] DNS Note
- Maven的安装配置
- [转]C#常用开源类库收集
- 连接MySQL错误:Can&#39;t connect to MySQL server (10060)
- jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
- MS SQL-Server快捷键
- background-sizi (转)
- jpg/png格式图片转eps格式的方法总结
- ichart.js绘制虚线 ,平均分虚线