第九章

一、使用能力检测

能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力。能力检测的基本模式如下:

if ( object.propertyInQuestion ) {

//使用object.propertyInQuestion

}

二、怪癖检测

与能力检测类似,怪癖检测的目标是识别浏览器的特殊行为。但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷。

三、用户代理检测

用户代理检测技术:

(1)识别呈现引擎

为了不在全局作用域中添加多余的变量,我们将使用模块增强模式来封装检测脚本。检测脚本的基本代码结构如下:

var  client = function(){

var  engine = {

//呈现引擎

ie:0,

gecko:0,

webkit:0,

khtml:0,

opera:0,

//具体的版本号

ver:null

};

//在此检测呈现引擎、平台和设备

return {

engine:engine

};

}();

(2)识别浏览器

(3)识别平台

(4)识别window操作平台

(5)识别移动设备

(6)识别游戏系统

二、使用方法:

用户代理检测一般用于以下情形:

(1)不能直接准确地使用能力检测或怪癖检测。

(2)同一款浏览器在不同平台下具备不同能力的时候。

JavaScript高级程序设计:第九章的更多相关文章

  1. javascript高级程序设计第二章知识点提炼

    这是我整理的javascript高级程序设计第二章的脑图,内容也是非常浅显与简单.希望您看了我的博客能够给我一些意见或者建议.

  2. javascript高级程序设计第一章有感

    第一章JavaScript简介 Javascript的诞生最早是为了处理表单数据验证的问题,以前主要是使用perl这个强大的服务端脚本语言处理的.在未诞生javascript之前, 人们每次提交表单就 ...

  3. javascript高级程序设计第二章

    看后总结: 1.js代码用得最多的两种加载方式: a)外部文件形式:<script type="text/javascript" src="jquery.min.j ...

  4. javascript高级程序设计第一章

    看后总结: 1.javascript的组成成分:ECMAscript+DOM+BOM

  5. 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript

    1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 lan ...

  6. 读书笔记 - javascript 高级程序设计 - 第一章 简介

      第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...

  7. javascript 高级程序设计1--14章重点总结

    js简介 首先介绍了js是一种专门与网页交互而设计的脚本语言.主要由ECMAScript 文档对象模型(DOM) 浏览器对象模型(BOM)三部分组成.分别用来提供核心语言,提供访问和操作网页内容的方法 ...

  8. 《JavaScript高级程序设计(第3版)》阅读总结记录第一章之JavaScript简介

    前言: 为什么会想到把<JavaScript 高级程序设计(第 3 版)>总结记录呢,之前写过一篇博客,研究的轮播效果,后来又去看了<JavaScript 高级程序设计(第3版)&g ...

  9. JavaScript高级程序设计(第三版)学习笔记20、21、23章

    第20章,JSON JSON(JavaScript Object Notation,JavaScript对象表示法),是JavaScript的一个严格的子集. JSON可表示一下三种类型值: 简单值: ...

  10. 《JAVASCRIPT高级程序设计》第三章

    <JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...

随机推荐

  1. Date对象 识记

    1.Date 对象创建 var myDate=new Date() 2.Date 对象属性 constructor pototype 3.Date 对象方法 Date()               ...

  2. HDU 1847 Good Luck in CET-4 Everybody! 博弈

    题目思路: 写出SG函数(1表示先手胜,0表示先手负) 110110110110-- 发现n%3==0时,Cici胜 #include<stdio.h> #include<strin ...

  3. appium元素定位及操作

    1.测试用例准备 数据准备   前提条件   操作步骤    预期结果 2.TestNG 用例组织:@Test @Before Class 结果验证:Assert 数据驱动:@DataProvide ...

  4. @NotNull和@NotEmpty和@NotBlank区别

    1.@NotNull:不能为null,但可以为empty (""," "," ") 2.@NotEmpty:不能为null,而且长度必须大于 ...

  5. wakeup_train运行遇到的问题记录

      运行前需要更改的地方:   1.matlab安装的路径以及matlab的license文件     2.噪声的路径;background.scp,以及噪声文件     3.run.sh文件中一处f ...

  6. OGG中断后,重新同步操作

    模拟一下goldengata中断后,重新同步操作: 1.关掉源端抽取进程 GGSCI (20081122-2105) 15> info all Program Status Group Lag ...

  7. Hibernate3 第一天

    Hibernate3 第一天 课程安排:4天(框架的使用+理论知识) 第一天Hibernate快速入门(单表的CRUD)+核心api讲解(配置+接口) 第二天:Hibernate一级缓存,快照,对象持 ...

  8. 2016 JetBrains 开发者日遇见开发神器的创造者

    JetBrains团队首次落地中国北京!2016 JetBrains开发者日将于2016年11月26日星期六10:00-16:30在中国北京举办! 这一次,我们将与社区演讲者一起谈论现代软件开发语言. ...

  9. w3c School

    w3c School : http://www.w3school.com.cn/h.asp

  10. PAT 团体程序设计天梯赛-练习集 L1-002. 打印沙漏

    本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...