我需要一些函数返回一个布尔值来检查浏览器是否是Chrome。
我如何创建这样的功能?
我需要一些函数返回一个布尔值来检查浏览器是否是Chrome。
我如何创建这样的功能?
当前回答
var is_chrome = browseris.chrome
或者查看浏览器:
browseris.firefox
browseris.ie
browseris.safari
此外,你可以像browseris一样检查版本。Chrome7up等等。
检查browseris对象中的所有现有信息
其他回答
检查这个:如何检测Safari, Chrome, IE, Firefox和Opera浏览器?
在你的情况下:
var isChrome = (window.chrome.webstore || window.chrome.runtime) && !!window.chrome;
用户可以更改用户代理。尝试在body元素的样式对象中测试webkit的前缀属性
if ("webkitAppearance" in document.body.style) {
// do stuff
}
var is_chrome = browseris.chrome
或者查看浏览器:
browseris.firefox
browseris.ie
browseris.safari
此外,你可以像browseris一样检查版本。Chrome7up等等。
检查browseris对象中的所有现有信息
了解不同桌面浏览器的名称(Firefox, IE, Opera, Edge, Chrome)。除了狩猎。
function getBrowserName() {
var browserName = '';
var userAgent = navigator.userAgent;
(typeof InstallTrigger !== 'undefined') && (browserName = 'Firefox');
( /* @cc_on!@*/ false || !!document.documentMode) && (browserName = 'IE');
(!!window.chrome && userAgent.match(/OPR/)) && (browserName = 'Opera');
(!!window.chrome && userAgent.match(/Edge/)) && (browserName = 'Edge');
(!!window.chrome && !userAgent.match(/(OPR|Edge)/)) && (browserName = 'Chrome');
/**
* Expected returns
* Firefox, Opera, Edge, Chrome
*/
return browserName;
}
适用于以下浏览器版本:
Opera - 58.0.3135.79
Firefox - 65.0.2 (64-bit)
IE - 11.413.15063 (JS Fiddle no longer supports IE just paste in Console)
Edge - 44.17763.1.0
Chrome - 72.0.3626.121 (Official Build) (64-bit)
在这里查看要点,在这里查看小提琴
原来的代码片段不再适用于Chrome浏览器,我忘记了我在哪里找到它。它之前有safari浏览器,但我不再有safari浏览器,所以我不能再验证了。
只有Firefox和IE代码是原始代码片段的一部分。
Opera、Edge和Chrome的检查非常简单。它们在userAgent中存在差异。OPR只存在于Opera中。Edge只存在于Edge中。所以要检查Chrome,这些字符串不应该在那里。
至于Firefox和IE,我无法解释它们的功能。
我将把这个功能添加到我正在编写的包中
更新:请参阅Jonathan的回答,了解处理这个问题的最新方法。下面的答案可能仍然有效,但在其他浏览器中可能会引发一些误报。
var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
然而,正如前面提到的,用户代理可能会被欺骗,所以在处理这些问题时,最好使用特征检测(例如Modernizer),正如其他答案所提到的。