【问题标题】:how to let my website open only on specific browsers如何让我的网站仅在特定浏览器上打开
【发布时间】:2020-10-03 11:02:09
【问题描述】:

我希望我的网站仅在这些选定的浏览器(Chrome、FireFox、Safari、Opera 和 Edge)中打开。无法弄清楚我是如何实现的,因为 userAgent 为上面提到的台式机或笔记本电脑的每个浏览器提供了这些字符串

Chrome: (Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like 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, like Gecko) Chrome/81.0.4044.138 Safari/537.36 OPR /68.0.3618.125)

Edge: (Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36 Edg /83.0.478.45)

其中 4 个的共同点是 ChromeSafari 关键字接受 FireFox,但 android 上的 FireFox 在 userAgent 字符串中显示 Safari 关键字,查看所有这些的 userAgents 字符串浏览器请转到此链接https://www.whatismybrowser.com/guides/the-latest-user-agent/ 可能会更好。

现在 navigator.userAgent.search / .match / indexOf 任何这些方法或导航器中的任何其他方法都不会提供浏览器的可靠或唯一标识(无论是台式机、笔记本电脑还是移动设备)。

所有其他最常用的浏览器也显示 ChromeSafari 关键字,在台式机中同时显示或至少显示其中一个,标签和手机,例如:三星设备 userAgent 字符串显示 三星浏览器,但也显示 ChromeSafari 关键字。

所以请任何人帮助我找出识别浏览器的最佳脚本并让我的网站https://justfortrial.com 仅在上述浏览器上加载。

【问题讨论】:

    标签: google-chrome firefox browser browser-detection


    【解决方案1】:

    好吧,我想我找到了一种方法来识别任何设备上的五个浏览器(问题中已提及)。不知道它是否适用于 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 上运行。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2011-12-31
      相关资源
      最近更新 更多