-4

我已经编写了一个 Javascript 浏览器检测功能,但我想用其他人的知识来改进它。

问题:

您会注意到我假设“Chrome 18”必须是“Maxthon 3”,但当然不一定如此!

我们如何区分 Chrome 18 和傲游 3?

同样,我们如何区分 Firefox 和 Sea Monkey?

那么月球呢?我们还可以通过 navigator.userAgent 检测到该浏览器吗?

还有其他我忘记的流行浏览器吗?

请仅提供纯 Javascript 解决方案/建议!

 <!DOCTYPE html>

 <script type="text/javascript">

 function GetBrowser(){
 var browser="";
 var version=0;

 if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
  version=new Number(RegExp.$1);
  browser="FireFox";} else {

  if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
   version=new Number(RegExp.$1);
   browser="Internet Explorer";} else {

   if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
    version=new Number(RegExp.$1);
    browser="Opera";} else {

    if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
     version=new Number(RegExp.$1);
     if (version==18) {version=3; browser="Maxthon";} else {browser="Google Chrome"}} else {version=0; browser="Undetermined";}
 }}}
 return browser+' '+version;}

 document.write(GetBrowser());
 </script>
4

2 回答 2

2

Modernizr http://modernizr.com/中实现了一个不错的浏览器/功能检测,它也被一些 CDN 支持,如 CDNjs http://cdnjs.com/

我想弄清楚的是您可以检测到一些浏览器支持的功能,因此您可以通过微小的差异简单地检测浏览器。

于 2012-11-09T21:41:45.073 回答
-5

这就是我需要的。我更正了 Opera 和 Safari 版本检测中的错误并添加了 SeaMonkey。

 <!DOCTYPE html>

 <script type="text/javascript">

 function GetBrowser(){
 var browser="";
 var version=0;

 if (/SeaMonkey[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
  version=new Number(RegExp.$1);
  browser="SeaMonkey";} else {

  if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
   version=new Number(RegExp.$1);
   browser="Mozilla FireFox";} else {

   if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){
    version=new Number(RegExp.$1);
    browser="Internet Explorer";} else {

    if (/Opera/.test(navigator.userAgent)){
     if (/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)){version=new Number(RegExp.$1);}
     browser="Opera";} else {

     if (/Maxthon[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
      version=new Number(RegExp.$1);
      browser="Maxthon";} else {

      if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
       version=new Number(RegExp.$1);
       browser="Google Chrome";} else {

       if (/Safari/.test(navigator.userAgent)){
        if (/Version[\/\s](\d+\.\d+)/.test(navigator.userAgent)){version=new Number(RegExp.$1);}
        browser="Safari";} else {browser="Unknown";}

 }}}}}}
 return browser+' '+version;}


 document.write(GetBrowser());

 </script>
于 2012-11-09T23:31:07.873 回答