阅读(4173) (12)

JavaScript 浏览器兼容性

2016-08-12 22:04:53 更新

浏览器兼容性

重要的是要了解不同浏览器之间的差异,以处理每个预计会出现的问题。所以重要的是要知道哪个浏览器运行在您的 Web 页面。

获得目前运行在 Web 页面的浏览器的信息,使用内置的 navigator 对象。

导航属性

有几个导航相关属性,您可以使用您的 Web 页面。下面是一个列表的名称和描述:

属性描述
appCodeName这个属性是一个包含浏览器 code name 的字符串,比如 Netscape 是 Netscape 的 code name , Microsoft Internet Explorer 是 Internet Explorer 的code name。
Appversion这个属性是一个字符串,其中包含浏览器的版本以及其他有用的信息,比如它的语言和兼容性。
language这个属性包含两个字母的缩写表示这种语言,使用这种方式的浏览器只有 Netscape。
mimTypes[]这个属性是一个数组,其中包含所有客户端支持的 MIME 类型。只有 Netscape。
platform[]这个属性是一个字符串,其中包含浏览器编译的平台。“Win32”32 位 Windows 操作系统。
plugins[]这个属性是一个数组,其中包含的所有插件已经安装在客户机上。只有 Netscape 公司。
userAgent[]这个属性是一个字符串,其中包含浏览器的代码名称和浏览器版本。这个值被发送到原始服务器用于识别客户端。

导航方法

有几个 Navigator-specific 方法。这里是一个与其相关的列表的:

方法描述
javaEnabled()这个方法确定是否启用了 JavaScript 客户端。如果启用了 JavaScript,那么该方法将返回 true,否则返回 false。
plugings.refresh这个方法使新安装的插件可用,并且用所有新插件的名称去填充插件数组。 Netscape 公司 only。
preference(name,value)这种方法允许标记脚本去获取和设置一些 Netscape 的偏好。如果省略第二个参数,那么该方法将返回的值指定的偏好;否则,使用系统默认的值。 Netscape 公司 only。
taintEnabled()这个方法返回 true,如果启用了数据污染,否则,则返回 false。

浏览器检测

有一个简单的 JavaScript 可以用来发现浏览器的名称 ,其后相应的 HTML 页面可以被提供给用户。

    <html>
    <head>
    <title>Browser Detection Example</title>
    </head>
    <body>
    <script type="text/javascript">
    <!--
    var userAgent   = navigator.userAgent;
    var opera   = (userAgent.indexOf('Opera') != -1);
    var ie  = (userAgent.indexOf('MSIE') != -1);
    var gecko   = (userAgent.indexOf('Gecko') != -1);
    var netscape= (userAgent.indexOf('Mozilla') != -1);
    var version = navigator.appVersion;

    if (opera){
      document.write("Opera based browser");
      // Keep your opera specific URL here.
    }else if (gecko){
      document.write("Mozilla based browser");
      // Keep your gecko specific URL here.
    }else if (ie){
      document.write("IE based browser");
      // Keep your IE specific URL here.
    }else if (netscape){
      document.write("Netscape based browser");
      // Keep your Netscape specific URL here.
    }else{
      document.write("Unknown browser");
    }
    // You can include version to along with any above condition.
    document.write("<br /> Browser version info : " + version );
    //-->
    </script>
    </body>
    </html>