javascript之BOM对象(三其他对象)
一、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对象(三其他对象)的更多相关文章
- 《你不知道的JavaScript》整理(三)——对象
一.语法 两种形式定义:文字形式和构造形式. //文字形式 var myObj = { key: value }; //构造形式 var myObj = new Object(); myObj.key ...
- JavaScript学习笔记(三)——对象
第四章 理解对象 1 说明 对象的状态:属性,行为:方法: 对象定义放在花括号内: 用冒号分隔属性名和属性值: 用逗号分隔属性名和属性值对,包括方法: 最后一个属性值后面不加逗号: 属性名可以是任何字 ...
- javascript类继承系列三(对象伪装)
原理:在子类的构造器上调用超类构造器(父类构造器中的this指向子类实例),js提供了apply()和call()函数,可以实现这种调用 function baseClass() { this.col ...
- javascript之BOM编程Screen(屏幕)对象
这个对象属性相对比较简单.掌握四个方法即可. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- 使用jQuery快速高效制作网页交互特效--JavaScript操作BOM对象
JavaScript操作BOM 一.window对象: 二.window对象的属性和方法 1.windows对象的常用属性: 语法:window.属性名="属性值" 2.windo ...
- 你想了解的《javaScript语言精粹》(三)
# javaScript语言精粹 # 第三章 对象 - javaScript 数据类型 1. 基础数据类型 Number String Boolean Undefined N ...
- 第三章 JavaScript操作BOM对象
第三章 JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...
- JavaScript的BOM(浏览器对象)基础语法总结
1.window对象是BOM的核心,window对象指当前的浏览器窗口. window对象方法: 2.history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能. ...
- JavaScript (JS)基础:BOM 浅析 (含window对象相关基本方法、属性解析)
① window对象(Math方法也属于window对象): window对象是JavaScript中的顶级对象,所有定义在全局作用域中的变量.函数都会变成window对象的属性和方法,window对 ...
- javascript之BOM对象(一window对象)
javascript包含三个部分,ECMAScript,BOM和DOM.ECMAScript是javascript的核心,包含javascript的基础语法.在Web中使用javascript,BOM ...
随机推荐
- [LeetCode] 62. Unique Paths 不同的路径
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- Win10 1903 运行安卓模拟器蓝屏解决方案
由于没有安卓机,想要测试一些东西,所以选择了安卓模拟器,可是一运行模拟器就导致电脑蓝屏,试了 N 次都不行. 于是在网上寻找解决方案,了解到导致蓝屏的原因都是因为虚拟化技术,我的系统是 Windows ...
- python运维开发常用模块(四)文件对比模块difflib
1.difflib介绍 difflib作为 Python的标准库模块,无需安装,作用是对比文本之间的差异,且支持 输出可读性比较强的HTML文档,与Linux下的diff命令相似.我们可以 使用dif ...
- 用友U8合同执行单保存报错,提示“语法错误或违反访问规则”
问题描述 用户参照合同录入第一阶段的执行单,保存时提示“语法错误或违反访问规则”,其他合同均正常,只有这张合同出现这个问题. 解决过程 语法错误或违反访问规则是SQL Server常见的报错,但其他合 ...
- 解决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 ...
- hbase源码之 compact源码(一)
hbase compact流程较多,这里分章节介绍,首先介绍compact在regionserver中的调用流程,并不会涉及真正的compact读取合并文件的流程,后续介绍. 在regionserve ...
- Sentry异常捕获平台
本文包括Sentry平台的介绍,以及环境搭建两部分,更多细节请查阅官方文档. 简介 Sentry是一个实时事件的日志聚合平台.它专门监测错误并提取所有有用信息用于分析,不再麻烦地依赖用户反馈来定位问题 ...
- Android Studio中的非项目文件及项目目录下的全局搜索
一.背景 项目开发中,AS(Android Studio)经常会用到通过关键字在项目空间下搜索对应结果.最经常用到的Find in Path.例如打开Find in Path后,可以选中Scope t ...
- Feign切换client到okhttp无法生效天坑!(附带发生的原因)
提示:如果只看如何解决问题,请看文章的末尾如何解决这个问题 1. 场景描述 最近项目中使用了feign当做http请求工具来使用.相对于httpclient.resttemplate来说,fegin用 ...
- R语言构建蛋白质网络并实现GN算法
目录 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 2.生物网络的模块发现方法 3.模块发现方法实现和图形展示 4.附录:igraph中常用函数 参考链接 R语言构建蛋白质网络并实现GN算 ...