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

文章目录

    • 方法一
    • 方法二
    • 综合
    • 测试
      • chrome
      • Edge
      • Maxthon
      • VC++调用 CHtmlView类
      • firefox
    • 结论

方法一

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

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

即可。

方法二

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

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

综合

可写一个html文件(如存为ieversion.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('

解析结果:


'); 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+'


'
); document.write('u_agent: '+u_agent+'
'
); script> <iframe src="http://mybrowse.osfipin.com" width="100%" height="400" scrolling="yes" /> body> html>

测试

chrome

chrome浏览器打开:
如何通过代码检测浏览器的内核和版本号_第1张图片

由 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)

如何通过代码检测浏览器的内核和版本号_第2张图片

可见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

如何通过代码检测浏览器的内核和版本号_第3张图片

可见支持比较好了。

【注】修改注册表,指定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

如何通过代码检测浏览器的内核和版本号_第4张图片

firefox

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

如何通过代码检测浏览器的内核和版本号_第5张图片

结论

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

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

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

你可能感兴趣的:(C语言开发应用)