当前位置: 首页 > 知识库问答 >
问题:

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

益泰平
2023-03-14

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个浏览器的共同点是Chrome和Safari关键字接受FireFox,但android上的FireFox在userAgent字符串中显示了Safari关键字,要查看所有这些浏览器的userAgents字符串,请访问以下链接https://www.whatismybrowser.com/guides/the-lates-user-agent/可能会有更好的想法。

现在,navigator.useragent.search/.match/index,这些方法中的任何一个或navigator中的任何其他方法都不会给出浏览器的可靠或唯一标识(不管是台式机、膝上型还是移动设备)。

所有其他不是最常用的浏览器也显示Chrome或Safari关键字,在台式机、选项卡和手机中显示两者或至少其中一个,例如:三星设备用户代理字符串显示三星浏览器,但也显示Chrome或Safari关键字。

因此,请任何人可以帮助我找出什么可以最好的脚本来识别浏览器,并让我的网站https://justfortrial.com加载只在上面提到的浏览器。

共有1个答案

康鹏云
2023-03-14

嗯,我想我找到了一种方法来识别任何设备上的五个浏览器(上面在问题中提到过)。我不知道它是否适用于苹果产品,因为我没有任何。请试穿你的苹果产品,让我知道它是否有效。我不是专业的,只是在网上学东西买试错的方法。所以如果它不能在你的窗户或手机上工作,请让我知道。

`

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上工作--至少对我来说是这样。

 类似资料:
  • 问题内容: 我想使用Python在本地计算机的网络浏览器(Chrome或Internet Explorer)中打开网站。 有没有可以为我做到这一点的模块? 问题答案: 该模块看起来很有希望

  • 问题内容: 我正在使用lang:java framework:testNG 我的系统安装了3-4个Mozilla版本,如何打开特定版本的Mozilla实例。假设我安装了3.5、3.6,…版本的Mozilla,并且我想打开3.6版本并执行测试。 问题答案: 只需指定版本的二进制文件的路径即可。

  • 我试图在我的MacBook上打开google页面时出错 期待在火狐上打开谷歌主页

  • 大家好,我有一个TestNG测试套件,它按顺序执行测试。但在它开始运行测试之前。它打开所需数量的浏览器,然后逐个运行测试。我想将此行为更改为打开一个浏览器,运行test/s并关闭浏览器。然后打开另一个浏览器,运行test/s并关闭,依此类推。这可能吗? 我在IntelliJ上使用TestNG,JAVA。示例测试套件: 所有的测试都继承了主类,它有@BeforeClass和@AfterClass方法

  • 我看到这个问题:一个网站能检测到你什么时候在用ChromeDriver使用selenium吗? 但在最新版本上尝试所有这些似乎都不起作用。 还有人知道别的吗? > 在元素上检测cdc_asdjflasutopfhvcZLmcfl_键,主要是在窗口和文档上,但在整个站点上有一些其他元素。 搜索总是返回而不是(在chrome和firefox上都测试过,尽管只有firefox表示支持) 根据以下答案测试

  • 问题内容: 我已经设计了一个使用Firefox的网站,现在希望将软件电话集成到网页中,但是不幸的是,它是使用ActiveX制作的,因此firefox不支持它。 我曾尝试在IE9中打开我的页面,但看起来很乱,因为我将CSS3用于很多页面,并且没有为不同的浏览器编码,因为我们只会在办公室内使用Firefox。 有什么方法可以告诉我在Firefox中的页面专门在Internet Explorer中打开一