如何让我的网站仅在特定的浏览器上打开

时间:2020-06-13 19:03:38

标签: google-chrome firefox browser browser-detection

我希望我的网站仅在这些选定的浏览器(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仅在上述浏览器上加载。

1 个答案:

答案 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上运行。