js ajax浏览器做什么,js区分webkit核心浏览器chrome,360浏览器
javascript如何识别webkit核心浏览器是哪种厂商的浏览器,如chrome,360急速,360安全,猎豹,世界之窗,搜狗,qq,百度之类的浏览器,核心都是webkit的,如何区分出不同的厂商。
一般区分浏览器厂商是通过navigator.userAgent来判断特殊字符来实现,但是webkit核心浏览器有些时候navigator.userAgent是完全一样的,不会增加特殊内容(如360就和chrome一模一样,其他的会增加厂商名称,搜狗有些版本的也没有加),javascript要区分浏览器厂商,需要使用external或者浏览器的特殊属性。
如搜狗浏览器的external对象会增加特殊的以Sogou开头的方法,猎豹也是。
js区分webkit核心浏览器chrome,360浏览器源代码如下
//来源:https://github.com/cloudcome/alien/blob/master/src/core/navigator/shell.js#L68
//由于来源使用了AMD模式加载,需要导入先关AMD类库比较麻烦,所以做了些许修改,并且来源判断不了chrome,会被识别为360浏览器
var browerTool = (function () {
var win = window, nav = win.navigator, doc = win.document, ieAX = win.ActiveXObject, ieMode = doc.documentMode, REG_APPLE = /^Apple/;
var ieVer = _getIeVersion() || ieMode || 0, isIe = ieAX || ieMode, chromiumType = _getChromiumType();
function _testExternal(reg, type) {//区分webkit核心主要通过external中的对象来判断,是否包含特殊的方法名称
var external = win.external || {};
for (var i in external) if (reg.test(type ? external[i] : i)) return true;
return false;
}
function _getChromiumType() {
if (isIe || typeof win.scrollMaxX !== 'undefined' || REG_APPLE.test(nav.vendor || '')) return '';//无法识别
var _track = 'track' in document.createElement('track');
var webstoreKeysLength = win.chrome && win.chrome.webstore ? Object.keys(win.chrome.webstore).length : 0;
if (_testExternal(/^sogou/i, 0)) return 'sogou';
if (_testExternal(/^liebao/i, 0)) return 'liebao';
//==========以下方法不是external或者clientInformation特有的,可能其他浏览器后续版本会增加,如果判断失败也是无解了
if (_testExternal(/^getguid/i, 0)) return 'qq';
if (_testExternal(/^getnextreqid/i, 0)) return 'baidu';
if (win.clientInformation && win.clientInformation.getBattery) return 'chrome';
//==========
if (_track) return webstoreKeysLength > 1 ? '360ee' : '360se';
return '';
}
function _getIeVersion() {
var v = 3, p = document.createElement('p'), all = p.getElementsByTagName('i');
while (p.innerHTML = '', all[0]);
return v > 4 ? v : 0;
}
return {
isIE: (function () { return !!ieVer; })(),
ieVersion: (function () { return ieVer; })(),
isChrome: (function () { return chromiumType === 'chrome'; })(),
is360se: (function () { return chromiumType === '360se'; })(),
is360ee: (function () { return chromiumType === '360ee'; })(),
isLiebao: (function () { return navigator.userAgent.indexOf('LBBROWSER') != -1; })(),
isSogou: (function () { return chromiumType === 'sogou'; })(),
isQQ: (function () { return navigator.userAgent.indexOf('QQBrowser') != -1; })(),
isBaidu: (function () { return navigator.userAgent.indexOf('BIDUBrowser') != -1; })(),
isFiefox: (function () { return navigator.userAgent.indexOf('Firefox') != -1 })(),//火狐
isTheWorld: (function () { return navigator.userAgent.indexOf('TheWorld') != -1 })(),//世界之窗
isOpera: (function () { return !!window.opr })()//欧朋
};
})();
for (attr in browerTool) document.write(attr + '=' + browerTool[attr] + '
');
加支付宝好友偷能量挖...
2015-10-28Web开发网
js ajax浏览器做什么,js区分webkit核心浏览器chrome,360浏览器相关推荐
- 360浏览器支持ajax吗,请问IE11,chrome,360浏览器7.1极速等这些浏览器不支持ajax技术吗?...
请问IE11,chrome,360浏览器7.1极速等这些浏览器不支持ajax技术吗?0 qdh_water2016.01.12浏览69次分享举报 以下是源代码,下面的代码在IE9,IE8,360浏览器 ...
- 360 html禁止自动填充,360浏览器的表单自动填充设置在哪?360浏览器自动填充表单的问题怎么解决?...
360浏览器的表单自动填充设置在哪?360浏览器自动填充表单的问题怎么解决? 很多用户都遇到了360浏览器自动填充表单的问题,那么怎么解决呢?今天带来360浏览器自动填充表单的问题解决方法分享. 开发 ...
- 【工具】部分浏览器截图操作--Edge+Chrome+360浏览器
[工具]部分浏览器截图操作–Edge+Chrome+360浏览器 一.Google浏览器截图 1,进入Google浏览器开发者模式 在网页空白处右击鼠标,选择"检查(N)",打开控 ...
- Android 浏览器内核浅谈,基于WebKit内核的Android手机浏览器的性能研究与加载优化...
南京邮电大学 硕士 2017 基于WebKit内核的Android手机浏览器的性能研究与加载优化 Performance Research and Load Optimization of Andro ...
- 打开360浏览器显示无法连接服务器错误,Win10电脑上360浏览器提示网络连接错误,错误代码 102的解决方案...
360浏览器是我们经常在Win10电脑上使用的浏览器之一,如果我们在Win10电脑上,用360浏览器无法打开网页,还提示网络连接错误,错误代码 102,这个我们要怎么办呢?这个问题已经让很多用户无法正 ...
- 中国浏览器市场份额状况(2010年4月)360浏览器对IE构成最大威胁
IE的市场份额还是很大,看来国内和国际的数据还是一定距离,IE6仍然还是60%这样强劲的份额. 360浏览器提高真快,已经把老牌国内浏览器遨游给击溃了, 搜狐最近强推浏览器,也有很快提高,2009年应 ...
- ace.js ajax 跳转,ace.js中文使用手册,收集比较全面
发表于黑白课堂 ace.js 官方的github https://github.com/ajaxorg/ace ace 是一个用 JavaScript 编写的独立代码编辑器.我们的目标是创建一个基于浏 ...
- 原生js.ajax内存溢出,【JS】解决内存溢出问题
首页 专栏 javascript 文章详情 0 解决内存溢出问题 comer发布于 27 分钟前 webpack 运行 npm run build 内存溢出 JavaScript heap out o ...
- js ajax局部替换,纯JS实现AJAX局部刷新功能
AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 J ...
最新文章
- 开发基础之使用git把项目提交到github托管
- 现代软件工程 第六章 【敏捷流程】练习与讨论
- jquery 全选获取值
- Python计算有向图中所有节点出度和入度
- 技术再好,能阻止暴力视频的疯传吗?
- 太赞了,Intellij IDEA竟然把Java8的数据流问题这么完美的解决掉了!
- 最新基于高德地图的android进阶开发(6)感兴趣点(POI)周边搜索源码浅析
- 图计算:社区发现算法
- coreldraw怎么画转弯箭头_新交规出炉,这样转弯会被扣8分罚款300,又有7.3万车主因此被罚!...
- r矢量球坐标系旋度_6矢量分析:旋度、散度、梯度.ppt
- oracle创建自增序列
- __kindof的用法
- 移动端安卓和苹果手机背景图片显示不全的问题
- CD4040二进制计数器实验电路的效果图演示_基础硬件电路图讲解
- vue 移动端剪裁
- phpstorm database 使用
- ZKT门禁机标准联接线(按键开关经过卡机)
- windows server 2016域控屏保策略设置
- [论文解读]A Survey of Methods for Explaining Black Box Models
- 公众号社区运营秘籍-大咖教你玩
热门文章
- 犹太人:赚钱能培养孩子独立责任奋进多种能力!
- 2020年支付宝福卡获取攻略
- “避开”电视剧的腾讯视频为何要叫板“综艺”?
- 网传阿里裁员20% 涉及上万人
- JAVA毕业设计计算机专业招聘网站计算机源码+lw文档+系统+调试部署+数据库
- 浅谈K8S的容器管理
- 宁夏理工学院计算机是专科吗,宁夏理工学院是本科还是专科
- 2018校招面经-深信服-网申-技术服务工程师挂面
- 优秀工程师应该具备哪些素质_想成为一名合格的技术工程师需要具备哪些能力?...
- python win7正常的文件路径到win10报错_如何更改临时文件路径_win10怎么更改临时文件夹的路径图文步骤...