导航器对象存储与浏览器有关的基本信息,例如名称,版本和系统。可以通过window.navigator引用该对象,并且可以使用其属性读取客户端的基本信息。如何检测浏览器有很多方法可以检测浏览器类型,并且有两种常用方法:特征检测法和字符串检测法。两种方法各有优缺点,用户可以根据需要进行选择。 1)特征检测方法特征检测方法是根据浏览器是否支持特定功能来确定相应的操作方法。这是一种不精确的判断方法,但它是最安全的检测方法。由于很难准确检测浏览器的类型和型号,并且容易出错。如果您不在乎浏览器的身份,而仅在乎浏览器的执行功能,那么功能检测方法就可以完全满足您的需求。
[示例1]以下代码检查当前浏览器是否支持document.getElementsByName功能(如果支持),请使用此方法获取文档中的a元素;否则,不执行此操作。否则,请检查其是否支持document.getElementsByTagName功能,如果确实在文档中获取了元素,则使用此方法。
if (document.getElementsByName) { //如果存在,则使用该方法获取a元素
var a = document.getElementsByName ("a");
} else if (document.getElementsByTagName) { //如果存在,则使用该方法获取a元素
var a = document.getElementsByTagName ("a");
}使用对象,方法或属性时,请首先确定其是否存在。如果存在,则表示浏览器支持对象,方法或属性,因此您可以放心使用它。 2)字符串检测方法每次客户端浏览器发送HTTP请求时,都会附带一个用户代理(用户代理)字符串。对于Web开发人员,用户代理字符串可用于检测浏览器类型。
[示例2] BOM在导航器对象中定义了userAgent属性,可用于捕获客户端用户代理字符串信息。

var s = window.navigator.userAgent; //简写方法 var s = navigator.userAgent; console.log(s); //返回类似信息:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36
用户代理字符串包含有关Web浏览器的许多信息,例如浏览器的名称和版本。
对于不同的浏览器,此字符串包含不同的信息。随着浏览器版本的继续升级,返回的用户代理字符串格式和信息也将继续更改。
检测浏览器类型和版本号更容易检测浏览器类型和版本。用户只需要根据不同的浏览器类型来匹配特殊信息。示例1以下方法可以检测当前的主流浏览器类型,包括IE,Opera,Safari,Chrome和Firefox浏览器。

var ua = navigator.userAgent.toLowerCase(); //获取用户端信息
var info = {
ie : /msie/ .test(ua) && !/opera/ .test(ua), //匹配IE浏览器
op : /opera/ .test(ua), //匹配Opera浏览器
sa : /version.*safari/.test(ua), //匹配Safari浏览器
ch : /chrome/.test(ua), //匹配Chrome浏览器
ff : /gecko/.test(ua) && !/webkit/.test(ua) //匹配Firefox浏览器
};在脚本中调用对象的属性。如果为true,则表示相应类型的浏览器,否则返回false。
(info.ie) && console.log("IE浏览器");
(info.ie) && console.log("Opera浏览器");
(info.ie) && console.log("Safari浏览器");
(info.ie) && console.log("Chrome浏览器");
(info.ie) && console.log("Firefox浏览器");示例2通过解析导航器对象的userAgent属性,可以获得浏览器的完整版本号。对于IE浏览器,在“ MSIE”字符串后跟一个空格,然后是版本号和分号。因此,您可以设计以下函数来获取IE的版本号。

//获取IE浏览器的版本号
//返回数值,显示IE的主版本号
function getIEVer () {
var ua = navigator.userAgent; //获取用户端信息
var b = ua.indexOf("MSIE"); //检测特殊字符串“MSIE”的位置
if (b < 0) {
return 0;
}
return parseFloat (ua.substring (b + 5,ua.indexOf (";", b))); //截取版本号,并转换为数值
}直接调用此函数以获取当前IE浏览器的版本号。
console.log(getIEVer());
有许多版本的IE浏览器。通常,您可以使用大于一定数字的形式进行范围匹配。因为浏览器是向后兼容的,所以显然有必要检查它是否等于某个版本并且不能使用新版本。示例3使用相同的方法来检测其他类型的浏览器的版本号。以下功能是检测Firefox浏览器的版本号。
对于Opera等浏览器,可以使用navigator.userAgent属性获取版本号,但是其客户端信息不同于IE,例如Opera / 9. 02(Windows NT 5. 1; U; zh),可以根据这些格式获取版本号。
如果浏览器的某些对象或属性不向后兼容,则此检测方法也容易出现问题。因此,一种更安全的方法是使用特征检测而不是字符串检测。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-362192-1.html
成为写手的大有人在
我红旗系列远中近距离导弹就位