当前位置: 首页 > 面试题库 >

如何使用JavaScript检测我的浏览器版本和操作系统?

杨飞飙
2023-03-14
问题内容

我尝试使用下面的代码,但仅在Chrome和Mozilla中显示结果,而在IE6中不起作用。

<div id="example"></div>

<script type="text/javascript">

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>";
txt+= "<p>Browser Name: " + navigator.appName + "</p>";
txt+= "<p>Browser Version: " + navigator.appVersion + "</p>";
txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>";
txt+= "<p>Platform: " + navigator.platform + "</p>";
txt+= "<p>User-agent header: " + navigator.userAgent + "</p>";

document.getElementById("example").innerHTML=txt;

</script>

输出:

Browser CodeName: Mozilla

Browser Name: Netscape

Browser Version: 5.0 (Windows)

Cookies Enabled: true

Platform: Win32

User-agent header: Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0

我只需要获取版本“ Firefox / 12.0”。


问题答案:

检测浏览器的详细信息:

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

// In Opera, the true version is after "Opera" or after "Version"
if ((verOffset=nAgt.indexOf("Opera"))!=-1) {
 browserName = "Opera";
 fullVersion = nAgt.substring(verOffset+6);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In MSIE, the true version is after "MSIE" in userAgent
else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
 browserName = "Microsoft Internet Explorer";
 fullVersion = nAgt.substring(verOffset+5);
}
// In Chrome, the true version is after "Chrome" 
else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {
 browserName = "Chrome";
 fullVersion = nAgt.substring(verOffset+7);
}
// In Safari, the true version is after "Safari" or after "Version" 
else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {
 browserName = "Safari";
 fullVersion = nAgt.substring(verOffset+7);
 if ((verOffset=nAgt.indexOf("Version"))!=-1) 
   fullVersion = nAgt.substring(verOffset+8);
}
// In Firefox, the true version is after "Firefox" 
else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {
 browserName = "Firefox";
 fullVersion = nAgt.substring(verOffset+8);
}
// In most other browsers, "name/version" is at the end of userAgent 
else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < 
          (verOffset=nAgt.lastIndexOf('/')) ) 
{
 browserName = nAgt.substring(nameOffset,verOffset);
 fullVersion = nAgt.substring(verOffset+1);
 if (browserName.toLowerCase()==browserName.toUpperCase()) {
  browserName = navigator.appName;
 }
}
// trim the fullVersion string at semicolon/space if present
if ((ix=fullVersion.indexOf(";"))!=-1)
   fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1)
   fullVersion=fullVersion.substring(0,ix);

majorVersion = parseInt(''+fullVersion,10);
if (isNaN(majorVersion)) {
 fullVersion  = ''+parseFloat(navigator.appVersion); 
 majorVersion = parseInt(navigator.appVersion,10);
}

document.write(''
 +'Browser name  = '+browserName+'<br>'
 +'Full version  = '+fullVersion+'<br>'
 +'Major version = '+majorVersion+'<br>'
 +'navigator.appName = '+navigator.appName+'<br>'
 +'navigator.userAgent = '+navigator.userAgent+'<br>'
)

源JavaScript:浏览器名称

正在检测操作系统:

// This script sets OSName variable as follows:
// "Windows"    for all versions of Windows
// "MacOS"      for all versions of Macintosh OS
// "Linux"      for all versions of Linux
// "UNIX"       for all other UNIX flavors 
// "Unknown OS" indicates failure to detect the OS

var OSName="Unknown OS";
if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";
if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";
if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";
if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";

document.write('Your OS: '+OSName);

源JavaScript:OS检测。

    var nVer = navigator.appVersion;

    var nAgt = navigator.userAgent;

    var browserName  = navigator.appName;

    var fullVersion  = ''+parseFloat(navigator.appVersion);

    var majorVersion = parseInt(navigator.appVersion,10);

    var nameOffset,verOffset,ix;



    // In Opera, the true version is after "Opera" or after "Version"

    if ((verOffset=nAgt.indexOf("Opera"))!=-1) {

     browserName = "Opera";

     fullVersion = nAgt.substring(verOffset+6);

     if ((verOffset=nAgt.indexOf("Version"))!=-1)

       fullVersion = nAgt.substring(verOffset+8);

    }

    // In MSIE, the true version is after "MSIE" in userAgent

    else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {

     browserName = "Microsoft Internet Explorer";

     fullVersion = nAgt.substring(verOffset+5);

    }

    // In Chrome, the true version is after "Chrome"

    else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) {

     browserName = "Chrome";

     fullVersion = nAgt.substring(verOffset+7);

    }

    // In Safari, the true version is after "Safari" or after "Version"

    else if ((verOffset=nAgt.indexOf("Safari"))!=-1) {

     browserName = "Safari";

     fullVersion = nAgt.substring(verOffset+7);

     if ((verOffset=nAgt.indexOf("Version"))!=-1)

       fullVersion = nAgt.substring(verOffset+8);

    }

    // In Firefox, the true version is after "Firefox"

    else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) {

     browserName = "Firefox";

     fullVersion = nAgt.substring(verOffset+8);

    }

    // In most other browsers, "name/version" is at the end of userAgent

    else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) <

              (verOffset=nAgt.lastIndexOf('/')) )

    {

     browserName = nAgt.substring(nameOffset,verOffset);

     fullVersion = nAgt.substring(verOffset+1);

     if (browserName.toLowerCase()==browserName.toUpperCase()) {

      browserName = navigator.appName;

     }

    }

    // trim the fullVersion string at semicolon/space if present

    if ((ix=fullVersion.indexOf(";"))!=-1)

       fullVersion=fullVersion.substring(0,ix);

    if ((ix=fullVersion.indexOf(" "))!=-1)

       fullVersion=fullVersion.substring(0,ix);



    majorVersion = parseInt(''+fullVersion,10);

    if (isNaN(majorVersion)) {

     fullVersion  = ''+parseFloat(navigator.appVersion);

     majorVersion = parseInt(navigator.appVersion,10);

    }



    document.write(''

     +'Browser name  = '+browserName+'<br>'

     +'Full version  = '+fullVersion+'<br>'

     +'Major version = '+majorVersion+'<br>'

     +'navigator.appName = '+navigator.appName+'<br>'

     +'navigator.userAgent = '+navigator.userAgent+'<br>'

    )



    // This script sets OSName variable as follows:

    // "Windows"    for all versions of Windows

    // "MacOS"      for all versions of Macintosh OS

    // "Linux"      for all versions of Linux

    // "UNIX"       for all other UNIX flavors

    // "Unknown OS" indicates failure to detect the OS



    var OSName="Unknown OS";

    if (navigator.appVersion.indexOf("Win")!=-1) OSName="Windows";

    if (navigator.appVersion.indexOf("Mac")!=-1) OSName="MacOS";

    if (navigator.appVersion.indexOf("X11")!=-1) OSName="UNIX";

    if (navigator.appVersion.indexOf("Linux")!=-1) OSName="Linux";



    document.write('Your OS: '+OSName);


 类似资料:
  • 问题内容: 我一直在寻找可以让我检测访问该网站的用户是否使用Firefox3或4的代码。我发现的所有代码都是用于检测浏览器类型而不是版本的代码。 如何检测这样的浏览器版本? 问题答案: 您可以看到浏览器说的内容,并将该信息用于记录或测试多个浏览器。

  • 问题内容: 我想知道是否有一种方法可以使用PHP / JS / ASP从浏览器中检测确切的操作系统版本? 我知道我可以检测操作系统的类型(Windows XP,Windows Vista,OS X等),但是我需要检测确切的版本:Vista Business,Vista Ultimate,Windows XP Home,Windows XP Pro等。 问题答案: 简短的回答: 不能。 长答案: 您

  • 本文向大家介绍C#如何检测操作系统版本,包括了C#如何检测操作系统版本的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#检测操作系统版本的方法,供大家参考,具体内容如下 我们通过System.Environment.OSVersion.Version获得操作系统的版本号,然后再根据版本号进行判断操作系统是什么版本。 Version 类的属性 参考于:https://msdn.mic

  • 问题内容: 如何检测用户是否没有使用JavaScript或PHP使用任何浏览器Chrome,Firefox或Internet Explorer? 问题答案: 我发现在JS中执行此操作的最佳方法是在Quirksmode上。我为PHP制作了一个应与常见浏览器一起使用的PHP:

  • 问题内容: 相对较新。似乎微不足道,但我不知道如何检测操作系统版本。我知道我可以使用并获得平台和体系结构,但是说我知道我在linux上,但是我想确定我是否在RH6上,而在RH7上,等等。 问题答案: 因此,至少在Linux上,软件包中确实存在这种晦涩的方法。它填充的结构有点笨拙,没有文档说明,但是您可以了解它的要点: 顺便说一句,这在操场上不起作用,可能是由于沙箱的限制,但是在Linux上起作用。

  • 到目前为止,我一直在使用重写,仅使用以下代码: 现在我潜入一个多语言网站,我想检测用户的浏览器语言,并根据这些信息将他重定向到他的语言版本 要改写这个: 成