1. 程式人生 > >如何通過程式碼檢測瀏覽器的核心和版本號

如何通過程式碼檢測瀏覽器的核心和版本號

文章目錄

方法一

依據根據瀏覽器的請求頭來識別。利用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)

在這裡插入圖片描述

可見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類的方法參見前部落格。