我希望我的网站仅在这些选定的浏览器(Chrome,FireFox,Safari,Opera和Edge)中打开。无法弄清楚我如何实现它,因为userAgent为上面提到的台式机或笔记本电脑的每个浏览器提供了这些字符串
Chrome:(Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,如Gecko) Chrome /83.0.4103.97 Safari /537.36)
FireFox:(Mozilla / 5.0(Windows NT 6.1; Win64; x64; rv:77.0)Gecko / 20100101 Firefox / 77.0)
Safari:(Mozilla / 5.0(Macintosh; Intel Mac OS X 10_15_5)AppleWebKit / 537.36(KHTML,例如Gecko) Chrome /83.0.4103.97 Safari /537.36)
Opera:(Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,如Gecko) Chrome /81.0.4044.138 Safari /537.36 OPR /68.0.3618.125)
边缘:(Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML,例如Gecko) Chrome /83.0.4103.97 Safari /537.36 Edg /83.0.478.45)
其中4个的通用性是 Chrome 和 Safari 关键字接受FireFox,但是Android上的FireFox在userAgent字符串中显示Safari关键字,以查看所有这些的userAgents字符串浏览器,请转到此链接https://www.whatismybrowser.com/guides/the-latest-user-agent/可能会有更好的主意。
现在navigator.userAgent.search / .match / index在导航器中的任何这些方法或任何其他方法中,都没有给出浏览器的实体或唯一标识(与台式机,笔记本电脑或移动设备无关)。
所有其他非最常用的浏览器也会显示 Chrome 或 Safari 关键字,它们在台式机中都或者至少两个,标签和移动设备,例如:Samsung设备的userAgent字符串显示 Samsung Browser ,而且还显示 Chrome 或 Safari 关键字。
因此,请任何人帮助我找出最好的脚本来识别浏览器,并让我的网站https://justfortrial.com仅在上述浏览器上加载。
答案 0 :(得分:0)
好吧,我想我找到了一种在任何设备上识别五个浏览器(在问题中已提到)的方法。不知道它是否适用于Apple产品,因为我没有任何产品。请尝试您的苹果产品,让我知道它是否有效。我不是专业人士,只是在网上学习东西购买试错法。因此,如果它无法在您的Windows或手机上运行,请告诉我。
`
var userAgentString = window.navigator.userAgent;
var vendor = window.navigator.vendor;
var mobile = /(Mobile)|(Android)/i.test(userAgentString);
var browserCheckList = userAgentString.split(")"); // Splitting the string and creating a list
var Edge = /Edg(e|A|iOS)?/i;
var Opera = /OPR/i;
var FireFox = /(Firefox)|(FxiOS)/i;
var Safari = /Safari/i;
var Chrome = /(Chrome)|(CriOS)/i;
var BrowserList = [Edge, Opera, FireFox, Safari, Chrome];
var count = 0;
for (var i = 0; i < BrowserList.length; i++) {
// Checks the regular expressin in the userAgent String
if (BrowserList[i].test(userAgentString)) {
if (vendor === "Apple Computer, Inc.") {
if (BrowserList[i] === Safari) {
break;
}
else {
count += 1;
continue;
}
}
else if (vendor === "Google Inc.") {
// Removes all unwanted characters like (Dot, Forward Slash, Numbers and empty spaces)
browserCheckList[2] = browserCheckList[2].replace(/\s?[/]?\.?[0-9]?/g, "");
// When browser opens in desktop/Laptop
if (!mobile) {
// Checking for Chrome Browser
if (BrowserList[i] === Chrome && browserCheckList[2].length === 12) {
break;
}
// Checking for Edge Browser
else if (BrowserList[i] === Edge) {
break;
}
// Checking for Opera Browser
else if (BrowserList[i] === Opera) {
break;
}
else {
count += 1;
continue;
}
}
// When browser opens in Mobiel Phones
else {
if (BrowserList[i] === Chrome && browserCheckList[2].length <= 18) {
break;
}
else if (BrowserList[i] === Edge) {
break;
}
else if (BrowserList[i] === Opera) {
break;
}
else {
count += 1;
continue;
}
}
}
else if (vendor === "") {
if (BrowserList[i] === FireFox) {
break;
}
else {
count += 1;
continue;
}
}
}
else {
count += 1;
continue;
}
}
// If none of the five browser is found in the userAgent String
if (count === 5) {
// Your code here or redirect to Supported Browser HTML Page
location.href = "supported_browsers.html";
}
` 当然,对我来说,它至少可以在Windows上运行。