我需要一些函数返回一个布尔值来检查浏览器是否是Chrome。
我如何创建这样的功能?
我需要一些函数返回一个布尔值来检查浏览器是否是Chrome。
我如何创建这样的功能?
当前回答
我发现的最好的解决方案,并在大多数浏览器中给出真或假的答案是:
var isChrome = (navigator.userAgent.indexOf("Chrome") != -1 && navigator.vendor.indexOf("Google Inc") != -1)
使用. indexof而不是.includes使其与浏览器更加兼容。 尽管(或因为)整个重点是使您的代码特定于浏览器,但您需要在大多数(或所有)浏览器中工作的条件。
其他回答
检查这个:如何检测Safari, Chrome, IE, Firefox和Opera浏览器?
在你的情况下:
var isChrome = (window.chrome.webstore || window.chrome.runtime) && !!window.chrome;
你可以使用:
navigator.userAgent.indexOf("Chrome") != -1
它正在处理v.71
如果你想检测Chrome的渲染引擎(所以不是谷歌Chrome或Chromium中的特定功能),一个简单的选项是:
var isChrome = !!window.chrome;
注意:对于基于Chrome的许多版本的Edge, Opera等也会返回true(感谢@Carrm指出这一点)。避免这种情况是一场持续的战斗(见窗口)。所以你应该问问自己,你是在试图检测渲染引擎(在2020年几乎所有主要的现代浏览器都使用)还是其他一些Chrome(或Chromium?)特定的功能。
你可以跳过!!
用户可以更改用户代理。尝试在body元素的样式对象中测试webkit的前缀属性
if ("webkitAppearance" in document.body.style) {
// do stuff
}
更简短:var is_chrome = /chrome/i。测试(导航器。userAgent);