一、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. ABP 异常

    abp自己封装了一个异常的基类: 此异常用于直接显示给用户,可用于返回一些提示,如:密码错误,用户名不能为空等. 参数 Severity :异常的严重程度 是个Enum类型 基本使用: 系统常见异常: ...

  2. [LeetCode] 746. Min Cost Climbing Stairs 爬楼梯的最小损失

    On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay ...

  3. vue 图片放大镜效果

    插件名称:vue-photo-zoom-pro https://github.com/Mater1996/vue-photo-zoom-pro 效果图  使用: <template> &l ...

  4. 用 cgroups 管理 cpu 资源

    转自:http://xiezhenye.com/2013/10/用-cgroups-管理-cpu-资源.html 这回说说怎样通过 cgroups 来管理 cpu 资源.先说控制进程的 cpu 使用. ...

  5. css line-height [转]

    原文: http://www.cnblogs.com/dolphinX/p/3236686.html https://www.cnblogs.com/yangjie-space/p/4858132.h ...

  6. 团队作业第五次—项目冲刺-Day3

    Day3 part1-SCRUM: 项目相关 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 hunter--冲刺集合 团队名称 hunte ...

  7. 解决python错误 UnicodeDecodeError: 'gb2312' codec can't decode byte 0x8b in position 1: illegal multibyte sequence

    报错的代码: url= 'http://kaijiang.500.com/shtml/ssq/19001.shtml' page =urllib.request.urlopen(url) conten ...

  8. 探索FFmpeg

    Part1 :FFmpeg简介 FFmpeg定义 FFmpeg是一款音视频编解码工具,为开发者提供了大量音视频处理接口. FF指的是"Fast Forward" FFmpeg历史 ...

  9. 《Game Programming Patterns》游戏设计模式

    转载自:https://blog.csdn.net/poem_qianmo/article/details/52505170 https://blog.csdn.net/poem_qianmo/art ...

  10. Web应急:网站被批量挂黑页

    作为一个网站管理员,你采用开源CMS做网站,比如dedecms,但是有一天,你忽然发现不知何时,网站的友情链接模块被挂大量垃圾链接,网站出现了很多不该有的目录,里面全是博彩相关的网页.而且,攻击者在挂 ...