如何通过MacBook,PC,IOS和andrroid中的javascript代码检测访问者浏览器

时间:2016-02-19 14:36:27

标签: javascript android ios browser

如果从MacBook / PC / IOS从SAFARI浏览器访问我的Web应用程序页面之一不起作用

所以我检测到该页面的浏览器,如果用户正在从SAFARI访问该页面,我告诉他们使用另一个浏览器。我使用的代码是

if (isSafari) {
 document.getElementById("safari").style.display = 'block';
 document.getElementById("other").style.display = 'none';
} 
else {
  document.getElementById("safari").style.display = 'none';
  document.getElementById("other").style.display = 'block';
}

但它只检测浏览器是否从PC /或Mac使用。但是,如果用户使用Mobile / Iphone / Ipad或tab,则此代码不会浏览器。

无论用户使用哪种设备,我如何检测访问者浏览器。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

// At least Safari 3+: "[object HTMLElementConstructor]"
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
var iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);
var webkit = !!ua.match(/WebKit/i);
var iOSSafari = iOS && webkit && !ua.match(/CriOS/i);

这是最终输出。

// At least Safari 3+: "[object HTMLElementConstructor]"
var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
// for mobile 
var iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);
var webkit = !!ua.match(/WebKit/i);
var iOSSafari = iOS && webkit && !ua.match(/CriOS/i);

if (isSafari || iOSSafari) {
 document.getElementById("safari").style.display = 'block';
 document.getElementById("other").style.display = 'none';
} 
else {
  document.getElementById("safari").style.display = 'none';
  document.getElementById("other").style.display = 'block';
}

如果你把它放在你的代码之上它应该工作。如果您有更多问题,我将很乐意回答。

答案 1 :(得分:0)

可能您可以查看用户的代理

console.log(navigator.userAgent);

输出:

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0