JS与jQuery判断浏览器类型及版本的完整指南

作者:页面旅途时间:2026-10-28 13:48:04浏览:630

本文总结了JavaScript和jQuery中判断浏览器类型及版本的核心方法。涵盖利用window对象特性、document.all、appName及数组toString差异识别IE,以及通过navigator.userAgent区分主流浏览器。同时详解jQuery 1.9移除$.browser后使用$.support的替代方案,提供实用代码示例与注意事项。

JS获取浏览器信息基础

在Web开发中,获取浏览器相关信息是常见需求。JavaScript提供了navigator对象来访问这些底层数据,包括浏览器代码名称、名称、版本号、Java支持状态、MIME类型、系统平台、插件列表以及用户代理字符串等关键属性。


浏览器代码名称:navigator.appCodeName
浏览器名称:navigator.appName
浏览器版本号:navigator.appVersion
对Java的支持:navigator.javaEnabled()
MIME类型(数组):navigator.mimeTypes
系统平台:navigator.platform
插件(数组):navigator.plugins
用户代理:navigator.userAgent

JavaScript判断IE浏览器的四种方法

针对IE浏览器的识别,JavaScript提供了多种实现路径,主要依赖于不同浏览器对DOM API的支持差异。

第一种方法利用事件监听器的存在性进行判断。


if(window.addEventListener){ 
alert("not ie"); 
}else if(window.attachEvent){ 
alert("is ie"); 
}else{ 
alert("这种情况发生在不支持DHTML的老版本浏览器(现在一般都支持)") 
}

需要注意的是,该逻辑在IE9及更高版本中会返回“not ie”,因为新版IE支持addEventListener。

第二种方法通过检测document.all对象的存在性来识别IE浏览器。


if(document.all){ 
alert("IE"); 
}else{ 
alert("not ie"); 
}

第三种方法直接比较navigator.appName属性与特定字符串“Microsoft Internet Explorer”。


var navigatorName = "Microsoft Internet Explorer"; 
if( navigator.appName == navigatorName ){ 
alert("ie") 
}else{
alert("not ie") 
}

第四种方法利用了IE浏览器与标准浏览器在数组toString方法处理上的差异。具体而言,标准浏览器在解析包含末尾逗号的数组字面量时会自动忽略该逗号,而IE旧版则不会,借此特性可构造判断逻辑。


if(!+[1,])alert("这是ie浏览器"); 
else alert("这不是ie浏览器");

同样地,此方法在IE9及以上版本中也会判定为“这不是IE浏览器”。

判断常用主流浏览器的通用方法

除了专门针对IE的检测,通常还需要一种能识别常用主流浏览器的通用方法。


var explorer =navigator.userAgent ;
//ie 
if (explorer.indexOf("MSIE") >= 0) {
alert("ie");
}
//firefox 
else if (explorer.indexOf("Firefox") >= 0) {
alert("Firefox");
}
//Chrome
else if(explorer.indexOf("Chrome") >= 0){
alert("Chrome");
}
//Opera
else if(explorer.indexOf("Opera") >= 0){
alert("Opera");
}
//Safari
else if(explorer.indexOf("Safari") >= 0){
alert("Safari");
} 
//Netscape
else if(explorer.indexOf("Netscape")>= 0) { 
alert('Netscape'); 
} 

该方法主要依赖navigator.userAgent字符串,通过indexOf("MSIE") >= 0或!= -1来判定是否为IE。此外,还可以扩展该逻辑以识别Firefox、Chrome、Opera、Safari和Netscape等其他浏览器,通过检查userAgent中是否包含对应的关键字字符串来实现分类。

jQuery判断浏览器类型与版本及版本变更说明

在jQuery环境中,判断浏览器类型和版本号有特定的API支持,但需注意版本兼容性变化。


$(document).ready(function(){

  var brow=$.browser;

  var bInfo="";

  if(brow.msie){bInfo="MicrosoftInternetExplorer"+brow.version;}

  if(brow.mozilla){bInfo="MozillaFirefox"+brow.version;}

  if(brow.safari){bInfo="AppleSafari"+brow.version;}

  if(brow.opera){bInfo="Opera"+brow.version;}

  alert(bInfo);

});

需要特别注意的是,从jQuery 1.9版本开始,官方移除了$.browser和$.browser.version属性。

取而代之的是使用$.support方法来进行功能检测,这反映了jQuery从浏览器嗅探向特性检测的理念转变。

作者最新文章