如何通过代码检测浏览器的内核和版本号

方法一

依据根据浏览器的请求头来识别。利用javascript的navigator.userAgent方法,只要在html网页中写入:

<script>
document.write(navigator.userAgent); 
</script>

即可。

方法二

互联网上有提供检测浏览器的内核和版本号及支持项的检测网址。如:

网站地址:http://mybrowse.osfipin.com 。这个网站不是根据浏览器的请求头(user-agent)判断浏览器的内核,版本和相关的功能。可适应移动端和PC端显示。

综合

可写一个html文件(如存为ieversion.html),综合上述,用不同的浏览器打开该文件即可。

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  
<body style="background-color: #CCFFCC">
<h1>浏览器内核版本检测</h1>
由 document.write(navigator.userAgent) 给出原始字串为<br><br>:
<script>
document.write(navigator.userAgent); 

document.write('<hr><h2>解析结果:</h2><p><br>'); 
var u_agent = navigator.userAgent; 
var browser_name='Failed to identify the browser'; 
if(u_agent.indexOf('Firefox')>-1){ 
browser_name='Firefox'; 
}else if(u_agent.indexOf('Chrome')>-1){ 
browser_name='Chrome'; 
}else if(u_agent.indexOf('Trident')>-1&&u_agent.indexOf('rv:11')>-1){ 
browser_name='IE11'; 
}else if(u_agent.indexOf('MSIE')>-1&&u_agent.indexOf('Trident')>-1){ 
browser_name='IE(8-10)'; 
}else if(u_agent.indexOf('MSIE')>-1){ 
browser_name='IE(6-7)'; 
}else if(u_agent.indexOf('Opera')>-1){ 
browser_name='Opera'; 
}else{ 
browser_name+=',info:'+u_agent; 
} 

document.write('browser_name:  '+browser_name+'<br><br><br>'); 
document.write('u_agent:  '+u_agent+'<br>'); 

</script>
<iframe src="http://mybrowse.osfipin.com" width="100%" height="400" scrolling="yes" />
</body>
</html>

测试

chrome

chrome浏览器打开:
在这里插入图片描述

由 document.write(navigator.userAgent) 给出原始字串为
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36

Edge

用Edge打开,由 document.write(navigator.userAgent) 给出原始字串为
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299

Maxthon

用Maxthon打开,由 document.write(navigator.userAgent) 给出原始字串为
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Maxthon/5.2.3.3000

Maxthon切换内核后,
浏览器内核版本检测由 document.write(navigator.userAgent) 给出原始字串为

: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko

VC++调用 CHtmlView类

用VC++编写的CHtmlView类,默认IE引擎打开
由 document.write(navigator.userAgent) 给出原始字串为
: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; Tablet PC 2.0)

扫描二维码关注公众号,回复: 4108174 查看本文章

在这里插入图片描述

可见IE版本较低,很多html新功能没有得到支持。

修改注册表,指定IE内核为11版本后(方法可查CSDN),用VC++编写的CHtmlView类,IE 11引擎打开:
由 document.write(navigator.userAgent) 给出原始字串为
: Mozilla/5.0 (Windows NT 6.2; WOW64; Trident/7.0; rv:11.0) like Gecko

在这里插入图片描述

可见支持比较好了。

【注】修改注册表,指定IE内核为11版本:
使用如下 wseeIE11注册表.reg 文件,双击之(或从注册表编辑器的文件|导入)即完成IE11内核的注册。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"wsee.exe"=dword:00002af8

在这里插入图片描述

firefox

firefox的检测结果:由 document.write(navigator.userAgent) 给出原始字串为
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0

在这里插入图片描述

结论

Chrome 内核支持最全。 Matxthon 用了双内核。 VC++调用IE内核默认版本较老(IE8),但可修改windows注册表来提升到最新版本11.

  • IE、Edge 是windows 10 自带的。
  • Chrome、 Matxthon、firefox均有绿色免安装版本。

以上测试在windows 10 、VC6.0(绿色免安装版)下进行。VC++调用 CHtmlView类的方法参见前博客。

猜你喜欢

转载自blog.csdn.net/shaoyubin999/article/details/83301399