JS对不同浏览器的检测问题

server/2024/10/18 22:31:36/

Navigator对象也称浏览器对象,该对象包含了浏览器的整体信息,如浏览器名称,版本号等。Navigator对象由Navigator浏览器率先使用,后来各方浏览器都开始支持Navigator对象,逐步成为一种标准。

一、Navigator对象的属性

以大多数浏览器都支持的版本为例,其属性有如下:

属性

说明

appName

返回浏览器的名称

appVersion

返回浏览器的版本号

userAgent

返回浏览器用于HTTP请求的用户代理头的值

appCodeName

返回浏览器的代码名

platform

返回运行浏览器的操作系统或硬件平台

例如,使用Navigator对象将浏览器的名称和版本号等打印出来。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

</head>

<body bgcolor="#ffffff" onLoad="whatBrowser()">

<SCRIPT>

<!-- Begin

function whatBrowser() {

document.Browser.Name.value=navigator.appName;

document.Browser.Version.value=navigator.appVersion;

document.Browser.Code.value=navigator.appCodeName;

document.Browser.Agent.value=navigator.userAgent;

}

</SCRIPT>

<FORM NAME="Browser">

你的浏览器名称: <INPUT TYPE="txt" NAME="Name" Size="45"><br />

你的浏览器信息: <INPUT TYPE="txt" NAME="Version" Size="45"><br />

你的浏览器密码信息:<INPUT TYPE="txt" NAME="Code" Size="45"><br />

使用信息: <INPUT TYPE="txt" NAME="Agent" Size="45"><br />

</FORM>

</body>

</html>

运行后,显示的结果为:

二、浏览器对象的子对象

Navigator对象的mimeTypes属性返回的是包含mimeType对象的数组,plugins属性返回的是包含Plugin对象的数组。因此,mimeType对象和Plugin对象是Navigator对象的子对象。

(一) mimeType对象

mimeType对象所代表的浏览器支持MIME类型数据格式,如属性如下:

属性

说明

description

返回对mimeType对象描述

enabledPlugin

返回一个数组,数组中的元素为Plugincf对象,该数组用于那些有插件支持的数据格式,如果没有,则返回null

suffixes

返回MIME类型文件的扩展名,如果有多个扩展名,则用逗号隔开

type

返回MIME类型的名称,该名称是唯一个可以用来描述当前MIME类型的字符串

由于Navigator对象的mimeTypes属性返回值是一个数组,因此,可以使用以下代码得到mimeType对象。

navigator.mimeTypes[i]

navigator.mimeTypes[“typename”]

(二)Plugin对象

Plugin对象用来描述浏览器所安装的插件,可以通过如下语句来获得:

navigator.plugins[i]

navigator. plugins[“typename”]

Plugin对象的属性如下:

属性

说明

description

插件的说明,由插件的创建者提供,用于说明插件的功能、厂商信息和版本信息等

filename

插件程序的文件名,不同的操作系统下,文件可能不同

length

插件所支持的MIME数组格式的个数,即该插件支持多少种数据格式

name

插件的名称

三、检测浏览器是否支持某些特性

要检测某些函数和属性在当前浏览器上是否存在,最简单的方法是使用typeof操作符。

例如,检测当前浏览器是否支持XMLHttpRequest类,代码如下:

var xmiExiests=typeof XMLHttpRequest;

如果返回的是undefined,则表示当前浏览器不支持XMLHttpRequest类。

四、检测当前浏览器是处于标准模式还是Qurks模式

通过读取document.compatMode属性,可以确定浏览器在处理文档时使用的是标准模式还是Quirks模式,可以用以下代码进行检测。

function QuirksMode(){

    if(typeof document.compatMode!=”undefined” && CSS.Compat/.text(doucment.compatMode)){

}

     return true;

}

如果文档使用Quirks模式渲染的,那么将返回True,否则将返回false。至于使用哪种模式,也会在DOCTYPE声明中体现出来,没有DOCTYPE的HTML文档,将自动按照Quirks模式进行处理。但是,有DOCTYPE声明并不意味着文档一定按Quirks模式渲染,它还与CSS规则有关,因此需要在CSS进行适当的处理。


http://www.ppmy.cn/server/124758.html

相关文章

万博智云CEO王嘉在华为全联接大会:以创新云应用场景,把握增长机遇

一、大会背景 2024年9月19-21日&#xff0c;第九届华为全联接大会将在上海世博展览馆和上海世博中心举办。作为华为的旗舰盛会&#xff0c;本次大会以“共赢行业智能化”为主题邀请了众多思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁&#xff0c;从战略、产业、…

【STM32】江科大STM32笔记汇总(已完结)

STM32江科大笔记汇总 STM32学习笔记课程简介(01)STM32简介(02)软件安装(03)新建工程(04)GPIO输出(05)LED闪烁& LED流水灯& 蜂鸣器(06)GPIO输入(07)按键控制LED 光敏传感器控制蜂鸣器(08)OLED调试工具(09)OLED显示屏(10)EXTI外部中断(11)对射式红外传感器计次 旋转编码器…

DrawDB本地Windows环境部署结合内网穿透远程设计数据库

文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 前言 我们在开发项目时很多时候都会使用到数据库&#xff0c;所以选择一个好用的数据库设计工具会让工作效率翻倍。在当今数字化时代&#xff0c;数据库管理是许多企业…

Python 统计学

Python 统计学 Python 是一种广泛使用的编程语言,尤其在数据科学和统计学领域。它提供了丰富的库和工具,使得进行统计分析变得更加容易和高效。本文将介绍 Python 在统计学中的应用,包括基本统计概念、常用的统计函数和库,以及如何使用 Python 进行数据分析。 基本统计概…

JS的基础语法

一、 JS的引入 1、 在标签内写js(内嵌) <body><!-- onclick是html的属性,是事件属性,在这里是鼠标点击事件属性值内部写的是js代码alert() 是js的弹窗函数--><button onclick"alert(警告!!!!)">按钮</button></body> 2、 …

基于php的酒店管理系

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

抖音上下边框中间视频效果怎么做

在抖音这个以短视频为主要内容的平台上&#xff0c;创作出既美观又富有信息量的视频至关重要。尤其是当我们手中的素材多为横屏拍摄&#xff0c;而抖音则以竖屏展示为主时&#xff0c;如何巧妙地处理这些素材&#xff0c;使它们更好地适应平台需求&#xff0c;成为了许多创作者…

CUDA 参考文章

CUDA&#xff1a;NVCC编译过程和兼容性详解_nvcc把cuda代码转换成什么-CSDN博客https://blog.csdn.net/fb_help/article/details/80462853 1、CUDA&#xff1a;NVCC编译过程和兼容性详解 CUDA&#xff1a;NVCC编译过程和兼容性详解 https://codeyarns.com/2014/03/03/how-to-sp…