只在使用chrome浏览器时执行javascript代码。

问题描述 投票:-1回答:1

我有一个基本的javascript代码,我想只在用户使用chrome时执行。我不想让javascript在使用其他浏览器时执行。

javascript google-chrome browser browser-detection
1个回答
0
投票

我想解决两个方面的问题。

第一,就像原发帖人的第一条评论中提到的,就是不建议这样做。你可以推断它是Chrome,或者IE,或者Firefox,或者Brave,或者Safari,或者其他一系列浏览器--但是你不能精确地保证它将是Chrome。你可能会很接近,并能够识别出它使用的是Chromium引擎--但是,由于其他浏览器通常会在它的基础上实现变体(例如,Moon和Brave),要精确识别浏览器会越来越难。

其次,要针织挑选,你并没有指定Windows与Macintosh与Linux(等)。Mac上的Chrome浏览器与Windows PC上的Chrome浏览器严格来说并不完全相同。如果你挑剔具体的浏览器,我只是好奇你是否挑剔运行浏览器的机器。对了,这样就更容易识别了。你很可能会想用。

console.log(window.navigator.oscpu);

0
投票

你可以根据只读属性试试下面的代码片段 窗口.导航仪.

你可以试着在这里学习。window.navigator.userAgent.

要想支持更多的浏览器,请看本帖的回答。如何在客户端获取浏览器的名称?

var browser = (function (agent) {
    switch (true) {
        case agent.indexOf("chrome") > -1 && !!window.chrome: return "chrome";
    }
})(window.navigator.userAgent.toLowerCase());



if(browser == "chrome")
{
  console.log("Hi, I'm chrome");
}
else
{
  console.log("Other Browser")
}

侧面说明一下。

基于这个研究 if-else vs. switch

->与if-else相比,switch语句在大多数情况下速度更快,但只有当条件数量较多时,速度才会明显加快。

如果你想根据这段代码区分很多浏览器,switch语句可能是一个更好的解决方案。

提示一下。

但总的来说,产生的userAgent只是一个当前浏览器版本的字符串。

例如在我的例子中,在windows电脑上使用chrome浏览器,我得到的是下面的完整字符串。

enter image description here


-1
投票

所以我找到了一个方法,可能有点长,但很管用。


var sBrowser,
  sUsrAg = navigator.userAgent;

// The order matters here, and this may report false positives for unlisted browsers.

if (sUsrAg.indexOf("Firefox") > -1) {
  sBrowser = "Mozilla Firefox";
  /* "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0" */
} else if (sUsrAg.indexOf("SamsungBrowser") > -1) {
  sBrowser = "Samsung Internet";
  /* "Mozilla/5.0 (Linux; Android 9; SAMSUNG SM-G955F Build/PPR1.180610.011) AppleWebKit / 537.36(KHTML, like Gecko)SamsungBrowser / 9.4 Chrome / 67.0.3396.87 Mobile Safari / 537.36 */
} else if (sUsrAg.indexOf("Opera") > -1 || sUsrAg.indexOf("OPR") > -1) {
  sBrowser = "Opera";
  /* "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko)Chrome / 70.0.3538.102 Safari / 537.36 OPR / 57.0.3098.106 " */
} else if (sUsrAg.indexOf("Trident") > -1) {
  sBrowser = "Microsoft Internet Explorer";
  /* " Mozilla / 5.0(Windows NT 10.0; WOW64; Trident / 7.0; .NET4.0C; .NET4.0E; Zoom 3.6.0; wbx 1.0.0; rv: 11.0)like Gecko " */
} else if (sUsrAg.indexOf("Edge") > -1) {
  sBrowser = "Microsoft Edge";
  /* " Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 58.0.3029.110 Safari / 537.36 Edge / 16.16299 " */
} else if (sUsrAg.indexOf("Chrome") > -1) {
  sBrowser = "Google Chrome or Chromium";
  /* " Mozilla / 5.0(X11; Linux x86_64)AppleWebKit / 537.36(KHTML, like Gecko)Ubuntu Chromium / 66.0.3359.181 Chrome / 66.0.3359.181 Safari / 537.36 " */
} else if (sUsrAg.indexOf("Safari") > -1) {
  sBrowser = " Apple Safari ";
  /* " Mozilla / 5.0(iPhone; CPU iPhone OS 11_4 like Mac OS X)AppleWebKit / 605.1.15 (KHTML, like Gecko)Version / 11.0 Mobile / 15E148 Safari / 604.1 980x1306 " */
} else {
  sBrowser = "unknown";
}

console.log("Browser name:" + sBrowser);

简单地用你的字符串替换" sBrowser = "Apple Safari"; "。

发现在 本网站

© www.soinside.com 2019 - 2024. All rights reserved.