如何检测浏览器的版本?
我一直在寻找可以让我检测访问网站的用户是否使用 Firefox 3 或 4 的代码。我找到的只是检测浏览器类型的代码,而不是检测版本的代码。
如何检测这样的浏览器版本?
I've been searching around for code that would let me detect if the user visiting the website has Firefox 3 or 4. All I have found is code to detect the type of browser but not the version.
How can I detect the version of a browser like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(30)
我想分享我为必须解决的问题编写的代码。它在大多数主要浏览器中进行了测试,对我来说就像一个魅力!
看起来这段代码与其他答案非常相似,但它进行了修改,以便我可以使用它插入 jquery 中的浏览器对象,这是我最近错过的,当然它是上述代码的组合,几乎没有改进我所做的部分:
I want to share this code I wrote for the issue I had to resolve. It was tested in most of the major browsers and works like a charm, for me!
It may seems that this code is very similar to the other answers but it modifyed so that I can use it insted of the browser object in jquery which missed for me recently, of course it is a combination from the above codes, with little improvements from my part I made:
我用它来获取实际浏览器版本的名称和编号(int):
这在
Chrome 中运行;火狐浏览器;野生动物园; Internet Explorer (>= 9) ;歌剧;边缘
对我来说。
I use this to get de Name and number (int) of the version of the actual browser:
This run in
Chrome ; Firefox ; Safari ; Internet Explorer (>= 9) ; Opera ; Edge
For me.
对于任何使用 Angular 的 PWA 应用程序,您可以在 index.html 的正文部分中放置代码来检查浏览器是否受支持 -
For any PWA application using angular you can put the code to check if browser is supported or not in body section of index.html -
根据接受的答案,这是用于检测“Microsoft Edge”的更新
Based on the accepted answer, this is an update for detecting "Microsoft Edge"
用于检测 iOS 浏览器的更新代码。
})();
An updated code to detect browsers from iOS.
})();
我写这个是为了我的需要。
它获取诸如是否是移动设备或是否具有视网膜显示屏之类的信息
尝试一下
I wrote this for my needs.
It get info like if is a mobile device or if has a retina display
try it
我根据在其他帖子中找到的内容使用这段 JavaScript 代码。
I use this piece of javascript code based on what I could find in another posts.
您可以查看浏览器所说的内容,并使用该信息来记录或测试多个浏览器。
You can see what the browser says, and use that information for logging or testing multiple browsers.
这是对肯纳贝克答案的改进。
此代码从spec_string (navigator.userAgent) 推导出浏览器名称和编号。但是有各种各样的spec_strings 以及它们各自的浏览器名称和编号。我无法检查其中的一小部分。如果您可以发布一个您知道其生成的浏览器名称和编号的spec_string,那就太好了。然后我可以相应地更新代码。
然后,我将按以下方式慢慢建立一个spec_string项目列表。
将来,每当对代码进行更改时,都可以自动对所有已知的 spec_string 转换进行测试。
我们可以一起做这件事。
This is an improvement on Kennebec's answer.
This code deduces browser name and number from the spec_string (navigator.userAgent). But there are all kinds of spec_strings out there with their respective browser name and number. And I'm not in a situation to check but a tiny proportion of them. It would be great if you could post a spec_string whose resulting browser name and number you know. I can then update the code accordingly.
I would then slowly build up a list of spec_string items in the following manner.
Then in the future, whenever a change is made to the code it can automatically be tested on all known spec_string conversions.
We can do this together.
以下是截至 2019 年 5 月处理浏览器检测的几个著名库。
Bowser 作者:lancedikson - 3,761★s - 最后更新于 2019 年 5 月 26 日 - 4.8KB
*支持基于 Chromium 的 Edge
Platform.js by bestiejs - 2,250 ★s - 最后更新于 2018 年 10 月 30 日 - 5.9KB
jQuery 浏览器 作者:gabceb - 504★s - 最后更新时间:2015 年 11 月 23 日 - 1.3KB
Detect.js(已存档) 作者:darcyclarke - 522★s - 最后更新时间:2015 年 10 月 26 日 - 2.9知识库
浏览器检测(已存档) 由 QuirksMode 撰写 - 最后更新于 2013 年 11 月 14 日 - 884B
值得注意的提及:
进一步阅读
Here are several prominent libraries that handle browser detection as of May 2019.
Bowser by lancedikson - 3,761★s - Last updated May 26, 2019 - 4.8KB
*supports Edge based on Chromium
Platform.js by bestiejs - 2,250★s - Last updated Oct 30, 2018 - 5.9KB
jQuery Browser by gabceb - 504★s - Last updated Nov 23, 2015 - 1.3KB
Detect.js (Archived) by darcyclarke - 522★s - Last updated Oct 26, 2015 - 2.9KB
Browser Detect (Archived) by QuirksMode - Last updated Nov 14, 2013 - 884B
Notable Mentions:
Further Reading
这结合了肯纳贝克(K)的答案和赫尔曼·英雅德森(H)的答案:
This combines kennebec's (K) answer with Hermann Ingjaldsson's (H) answer:
bowser JavaScript 库提供了此功能。
看起来保养得很好。
The bowser JavaScript library offers this functionality.
It seems to be well maintained.
使用这个:http://www.quirksmode.org/js/detect.html
Use this: http://www.quirksmode.org/js/detect.html
我一直在为自己寻找解决方案,因为 jQuery 1.9.1 及更高版本已删除
$.browser
功能。我想出了这个对我有用的小功能。它确实需要一个全局变量(我称之为我的_browser)来检查它是哪个浏览器。我编写了一个jsfiddle来说明如何使用它,当然,只需添加 _browser.foo 的测试即可将其扩展到其他浏览器,其中 foo 是浏览器的名称。我只做了流行的。
检测浏览器()
要检查当前浏览器是否是 Opera,您需要
编辑修复格式,修复 IE11 和 Opera/Chrome 的检测,将结果更改为 browserResult。现在,
_browser
键的顺序并不重要。更新了jsFiddle链接。2015/08/11 编辑 为 Internet Explorer 12 (EDGE) 添加了新的测试用例,修复了一个小的正则表达式问题。更新了jsFiddle链接。
I was looking for a solution for myself, since jQuery 1.9.1 and above have removed the
$.browser
functionality. I came up with this little function that works for me.It does need a global variable (I've called mine _browser) in order to check which browser it is. I've written a jsfiddle to illustrate how it can be used, of course it can be expanded for other browsers by just adding a test for _browser.foo, where foo is the name of the browser. I did just the popular ones.
detectBrowser()
To check if the current browser is Opera you would do
Edit Fixed the formatting, fixed the detection for IE11 and Opera/Chrome, changed to browserResult from result. Now the order of the
_browser
keys doesn't matter. Updated jsFiddle link.2015/08/11 Edit Added new testcase for Internet Explorer 12 (EDGE), fixed a small regexp problem. Updated jsFiddle link.
这将返回一个数组,第一个元素是浏览器名称,第二个元素是字符串格式的完整版本号。
This will return an array, first element is the browser name, second element is the complete version number in string format.
这是 Fzs2 和 Fzs2 的更新肯纳贝克新边缘铬
This is a Update on Fzs2 & kennebec For New Edge Chromium
在纯 Javascript 中,您可以在
navigator.userAgent
上进行正则表达式匹配来查找 Firefox 版本:如果不是 Firefox 浏览器,
ffVersion
将为undefined
。查看工作示例→
In pure Javascript you can do a RegExp match on the
navigator.userAgent
to find the Firefox version:ffVersion
will beundefined
if not a Firefox browser.See working example →
jQuery 可以很好地处理这个问题 (jQuery.browser)
编辑:正如 Joshua 在下面的评论中所写,自版本 1.9 以来,jQuery 不再支持 jQuery.browser 属性(请阅读 jQuery 1.9 发行说明 了解更多详情)。
jQuery 开发团队建议使用更完整的方法,例如使用 Modernizr 库。
jQuery can handle this quite nice (jQuery.browser)
EDIT: As Joshua wrote in his comment below, jQuery.browser property is no longer supported in jQuery since version 1.9 (read jQuery 1.9 release notes for more details).
jQuery development team recommends using more complete approach like adapting UI with Modernizr library.
检测浏览器及其版本
此代码段基于 MDN。他们给出了有关可用于检测浏览器名称的各种关键字的简短提示。
我做了一些更改来检测 Edge 和 UCBrowser 等浏览器
Detecting Browser and Its version
This code snippet is based on the article from MDN. Where they gave a brief hint about various keywords that can be used to detect the browser name.
I have done few changes to detect browsers like Edge and UCBrowser
查看
navigator.userAgent
-Firefox/xxx.xxx.xxx
在最后指定。Look at
navigator.userAgent
-Firefox/xxx.xxx.xxx
is specified right at the end.我根据 Hermann Ingjaldsson 的答案编写了一个版本检测器,但更强大,并且返回一个包含名称/版本数据的对象。它涵盖了主要的浏览器,但我不关心过多的移动浏览器和次要浏览器:
然后可以像这样使用它:
I wrote a version detector based on Hermann Ingjaldsson's answer, but more robust and which returns an object with name/version data in it. It covers the major browsers but I don't bother with the plethora of mobile ones and minor ones:
It can then be used like this:
为此,您需要检查 navigator.appVersion 或 navigator.userAgent 的值
尝试使用:
For this you need to check the value of navigator.appVersion or navigator.userAgent
Try using:
请在此处查看演示..http://jsfiddle.net/hw4jM/3/
See the demo here..http://jsfiddle.net/hw4jM/3/
我用 ASP 代码编写了一个脚本来检测浏览器、浏览器版本、操作系统和操作系统版本。
我在 ASP 中执行此操作的原因是因为我想将数据存储在日志数据库中。
所以我必须检测浏览器服务器端。
这是代码:
I have made a script in ASP code to detect browser, browser version, OS and OS version.
The reason for me to do this in ASP was because i want to store the data in a log-database.
So I had to detect the browser serverside.
Here is the code:
此页面似乎有一个非常好的代码片段,仅使用 appString 和 appVersion 属性作为最后的手段,因为它声称它们对某些浏览器不可靠。
页面代码如下:
This page seems to have a pretty nice snippet which only uses the appString and appVersion property as a last resort as it claims them to be unreliable with certain browsers.
The code on the page is as follows:
添加我自己对赫尔曼答案的实现。我需要操作系统检测,因此已添加。还包括一些您可能需要进行 ES5 化的 ES6 代码(因为我们有一个转译器)。
返回:
对象{浏览器:“Chrome”,版本:“50”,操作系统:“UNIX”}
Adding my own implementation of Hermann's answer. I needed OS detection so that's been added. Also includes some ES6 code (because we have a transpiler) that you might need to ES5-ify.
Returns:
Object {browser: "Chrome", version: "50", os: "UNIX"}
在这里,这比 @kennebec 片段具有更好的兼容性;
将返回浏览器名称和版本(返回 72 而不是 72.0.3626.96)。
在 Safari、Chrome、Opera、Firefox、IE、Edge、UCBrowser 以及移动设备上进行了测试。
Here this has better compatibility then @kennebec snippet;
will return browser name and version (returns 72 instead of 72.0.3626.96).
Tested on Safari, Chrome, Opera, Firefox, IE, Edge, UCBrowser, also on mobile.