我一般都是用谷歌浏览器进行开发,在开发大屏可视化的时候出现了浏览器不适应的问题,需要不同的浏览器进行判断,360返回 Chrome 内核, 获取的信息无法跟谷歌浏览器区别
这个是中国的主流浏览器:
比如谷歌可以正常显示:
而 360就不行 :
代码如下的逻辑:
封装
// 检测极速内核下的360浏览器
function checkChromeFor360() {
var uas = navigator.userAgent.split(' '),
result = false;
// 排除ua自带标志的双核浏览器, 余下chrome,chromium及360浏览器
if (uas[uas.length - 1].indexOf('Safari') == -1) {
return result;
}
for (var key in navigator.plugins) {
// np-mswmp.dll文件在chromium及chrome未查询到
if (navigator.plugins[key].filename == 'np-mswmp.dll') {
return !result;
}
}
return result;
}
调用:
const is360Browser = checkChromeFor360();
console.log(is360Browser);
if (is360Browser) {
console.log('360 浏览器');
widthAdjustment = 30; // 360浏览器的调整值
} else if (userAgent.indexOf('Edg/') > -1) {
widthAdjustment = 50; // Edge的调整值
console.log('Edg');
} else if (userAgent.includes('Chrome') && !userAgent.includes('Edg')) {
console.log('Chrome');
widthAdjustment = 100; // Chrome的调整值
} else if (userAgent.includes('Firefox')) {
console.log('Firefox');
widthAdjustment = 30; // Firefox的调整值
} else if (userAgent.includes('Safari') && !userAgent.includes('Chrome')) {
console.log('Safari');
widthAdjustment = 40; // Safari的调整值
} else if (userAgent.includes('MSIE') || userAgent.includes('Trident')) {
console.log('Internet Explorer');
widthAdjustment = 60; // Internet Explorer的调整值
}