一、navigator对象

navigator使用来识别浏览器的,是所有支持javascript的浏览器所共有的。与BOM的其他对象不同,每个浏览器的navigator对象都有一套自己的属性。

常见的属性名称:

appName 完整的浏览器名称

cookieEnabled 表示cookie是否启用

onLine 浏览器是否联网

platform 浏览器所在的系统平台

plugins 浏览器所安装的插件信息的数组

preference() 用户的首选项

userLanguage 浏览器的默认语言

1、检测插件

对于非IE浏览器可以使用plugins数组进行检查,该数组的每一项都包含了一下属性 :

  • name 插件名称
  • description 插件描述
  • filename 插件文件名
  • length 插件所处理的MIME类型数量
function hasPlugin(name)
{
name=name.toLowerCase();
for(var i=0;i<navigator.plugins.length;i++)
{
if (navigator.plugins[i].name.toLowerCase().indexOf(name)>-1) { return true;
}
}
return false;
}
alert(hasPlugin("Flash"));

通过navigator.plugins数组得到了插件数组,然后在插件数组中查询是否对应的插件名。

对于IE浏览器的插件检测方法:

在IE中检测插件的唯一方式就是试用ActiveXObject类型,并尝试创建特定插件的实例。IE是以COM对象来检测插件的,COM对象是以唯一标识符来确定对象的。

Flash插件的唯一表示符为:ShockwaveFlash.ShockwaveFlash

function  hasIEPlugin(name)
{
try{
new ActiveXObject(name);
return true;
}catch(ex)
{
return false;
} }
alert(hasIEPlugin("ShockwaveFlash.ShockwaveFlash"));

由于两种差别太大,所以通常采用针对特定插件做检测算法

//检测所有浏览器的Flash插件
function hasFlush()
{
var result=hasPlugin("Flush");
if(!result)
{
result=hasIEPlugin("ShockwaveFlash.ShockwaveFlash");
}
return result;
}

首先是对所有浏览器都采用hasPlugin函数检测如果返回true就不用再检测IE因为IE已经用hasPlugin检测过了,否则要专门对IE进行检测。

2、注册处理程序:

navigator.registerContentHandler(mimeType, uri, title);//接收三个参数,要处理的MIME类型,可以处理该MIME类型的页面的URL以及应用程序的名称
navigator.registerProtocolHandler(protocol, url, title);//接收三个参数,协议名称,可以处理相应请求的页面的URL以及应用程序的名称

这两个方法可以让一个站点指明可处理的类型。

二、screen对象

screen对象包含着浏览器窗口外显示器的信息,每个浏览器的screen对象都包含有不同的属性

三、history对象

history对象保存用户上网的历史记录,从浏览器窗口打开的时候算起。history是window的属性,每一个窗口或者框架都有一个history对象。

go();方法,接收一个整数值或者字符串,表示前进或者后退的页数或者前往的页面

history.forward();前进1页

history.back();后退1页

javascript之BOM对象(三其他对象)的更多相关文章

  1. 《你不知道的JavaScript》整理(三)——对象

    一.语法 两种形式定义:文字形式和构造形式. //文字形式 var myObj = { key: value }; //构造形式 var myObj = new Object(); myObj.key ...

  2. JavaScript学习笔记(三)——对象

    第四章 理解对象 1 说明 对象的状态:属性,行为:方法: 对象定义放在花括号内: 用冒号分隔属性名和属性值: 用逗号分隔属性名和属性值对,包括方法: 最后一个属性值后面不加逗号: 属性名可以是任何字 ...

  3. javascript类继承系列三(对象伪装)

    原理:在子类的构造器上调用超类构造器(父类构造器中的this指向子类实例),js提供了apply()和call()函数,可以实现这种调用 function baseClass() { this.col ...

  4. javascript之BOM编程Screen(屏幕)对象

    这个对象属性相对比较简单.掌握四个方法即可. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...

  5. 使用jQuery快速高效制作网页交互特效--JavaScript操作BOM对象

    JavaScript操作BOM 一.window对象: 二.window对象的属性和方法 1.windows对象的常用属性: 语法:window.属性名="属性值" 2.windo ...

  6. 你想了解的《javaScript语言精粹》(三)

    # javaScript语言精粹  # 第三章 对象 - javaScript 数据类型     1. 基础数据类型         Number String Boolean Undefined N ...

  7. 第三章 JavaScript操作BOM对象

    第三章   JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...

  8. JavaScript的BOM(浏览器对象)基础语法总结

    1.window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 2.history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. ...

  9. JavaScript (JS)基础:BOM 浅析 (含window对象相关基本方法、属性解析)

    ① window对象(Math方法也属于window对象): window对象是JavaScript中的顶级对象,所有定义在全局作用域中的变量.函数都会变成window对象的属性和方法,window对 ...

  10. javascript之BOM对象(一window对象)

    javascript包含三个部分,ECMAScript,BOM和DOM.ECMAScript是javascript的核心,包含javascript的基础语法.在Web中使用javascript,BOM ...

随机推荐

  1. luoguP2260 [清华集训2012]模积和

    题意 \(\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}n\%i*m\%j*[i!=j]\) \(\sum\limits_{i=1}^{n}\sum\limits ...

  2. ESP8266 SDK开发: 外设篇-GPIO输出高低电平

    前言 官方提供了两个函数 GPIO_OUTPUT_SET(gpio_no, bit_value) 设置GPIO2输出高电平 GPIO_OUTPUT_SET(2, 1); 设置GPIO2输出低电平 GP ...

  3. machine_math2

    1. 2. 3.拉格朗日对偶??? 弱对偶 强对偶: <1>slater条件(强对偶的充分条件): 1.凸函数. 2.存在一个可行解满足不等式成立. 4.KKT条件

  4. Python--单元四练习

    一.算24 描述: 给出4个小于10的正整数,可以使用加.减.乘.除4种运算以及括号把4个数连接起来得到一个表达式.现在问题是,是否存在一种方式使得所得表达式的结果等于24.‪‬‪‬‪‬‪‬‪‬‮‬‪ ...

  5. 【微信小程序】手写索引选择器(城市列表,汽车品牌选择列表)

    摘要: 小程序索引选择器,点击跳转相应条目,索引可滑动,滑动也可跳转 场景:城市选择列表, 汽车品牌选择列表 所用组件: scroll-view(小程序原生) https://developers.w ...

  6. 推荐一款万年历App 诸葛万年历

    推荐一款万年历App 诸葛万年历 1 介绍 应用简介: 提供标准和专业的时间信息查询,记录和承载生活中的美好记忆,帮助用户高效快捷的管理个人时间.精美的日期展示和完善的重要事件提醒功能,可以方便安排日 ...

  7. 转 A 、B两张表,找出ID字段中,存在A表,但是不存在B表的数据

    A.B两张表,找出ID字段中,存在A表,但是不存在B表的数据,A表总共13W数据,去重后大约3万条数据,B表有2W条数据,且B表的ID有索引. 方法一 使用not in,容易理解,效率低. selec ...

  8. mqtt数据采集器

    MQTT是一种发布(publish)/订阅(subscribe)协议,MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与 ...

  9. vue cli 3 那些事儿

    配置 eslint 可在 package.json 中的 eslintConfig 中配置,比如允许在代码中使用 console,package.json 中配置如下 ... "eslint ...

  10. Nacos配置中心

    本文介绍spring cloud 集成 nacos案例 官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html](https://nacos.io/zh ...