如果从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,则此代码不会浏览器。
无论用户使用哪种设备,我如何检测访问者浏览器。
感谢您的帮助
答案 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