JavaScript 检测浏览器类型与版本的方法
作者:窗边听雨时间:2026-10-25 23:27:27浏览:334
本文介绍如何利用 JavaScript 的 navigator.userAgent 属性结合正则表达式来识别浏览器类型(IE、Firefox、Chrome)及其版本号。通过解析用户代理字符串,提取关键信息并在页面中展示当前使用的浏览器名称及具体版本,适用于需要兼容不同浏览器的 Web 开发场景。
浏览器类型与版本检测概述
以下 checkBrowser() 函数主要用于识别三种主流浏览器:Internet Explorer、Firefox 和 Chrome。其他浏览器的检测逻辑可根据实际需求自行补充。
HTML 页面结构
HTML 结构部分:在页面加载完成后自动执行检测函数。
具体代码如下:
<body onload="checkBrowser()">
<p id="userAgent"></p>
<p id="browser"></p>
</body> JavaScript 检测逻辑实现
JavaScript 实现部分:
检测的核心原理是从 navigator.userAgent 属性中提取用户代理信息,进而获取浏览器类型和版本数据。利用正则表达式进行匹配可以高效满足需求。若对正则表达式不熟悉,可参考相关文档。
具体代码如下:
function check(reg) {
var ug = navigator.userAgent.toLowerCase();
return reg.test(ug);
}
function checkBrowser() {
var ug = navigator.userAgent.toLowerCase();
var userAgent = document.getElementById("userAgent");
userAgent.innerHTML = "浏览器的用户代理报头:" + ug;
var browserType = "";
var ver = "";
// 检测 IE 浏览器及其版本
var IE = ug.match(/msie\s*\d\.\d/); // 提取浏览器类型及版本信息,注意 match() 方法返回的是数组而非字符串
var isIE = check(/msie/);
if(isIE) {
browserType = "Internet Explorer";
ver = IE.join(" ").match(/[0-9]/g).join("."); // 先使用 join() 将数组转为字符串,再通过 match() 匹配数字,最后用 join(".") 组合成版本号
}
// 检测 Chrome 浏览器及其版本
var chrome = ug.match(/chrome\/\d\.\d/gi);
var isChrome = check(/chrome/);
if(isChrome) {
browserType = "Chrome";
ver = chrome.join(" ").match(/[0-9]/g).join(".");
}
// 检测 Firefox 浏览器及其版本
var firefox = ug.match(/firefox\/\d\.\d/gi);
var isFirefox = check(/firefox/);
if(isFirefox) {
browserType = "Firefox";
ver = firefox.join(" ").match(/[0-9]/g).join(".");
}
var browser = document.getElementById("browser");
browser.innerHTML = "您正在使用的浏览器为:" + browserType + "<span style='padding-left:15px;'>版本为:</span>" + ver;
} PS:各浏览器的用户代理信息如下:
IE:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; BOIE9;ZHCN); |
firefox:Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0; |
chrome:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13 |
作者最新文章
anime.js 快速入门:怎么引入库并编写第一个 DOM 动画
2026-11-05 14:22:43
在线JS解密后变量名仍乱码?结合浏览器DevTools调试还原
2026-11-04 20:26:01
怎么在浏览器中运行JavaScript代码并查看输出结果
2026-11-04 09:07:33
JS 获取屏幕分辨率:window.screen.width 与 height 用法
2026-11-04 08:52:48
为什么推荐用DOMContentLoaded代替window.onload初始化JS
2026-11-04 08:42:33
