jQuery定义了很多工具函数,这些函数的命名空间为$,但不操作包装集,用户可以把它看作是顶层函数,不同之处是他们定义在$实例上,而不是定义在window实例上,类似于静态类型函数。

通常来说,工具函数的主要任务是操作除DOM意外的JavaScript对象,或执行一些非对象相关的操作。

jQuery通过定义在$上的变量为开发人员提供一些有用的客户信息,通过这些标志信息可以方便的检测当前浏览器的功能,以便用户基于这些信息进行决策。

这些标志信息包括:jQuery.browser、jQuery.boxModel和jQuery.support

一、检测用户代理

浏览器检测方法:

1. 字符串检测法:根据navigator.userAgent属性返回值进行检测。but,jQuery从1.3版本就不再支持使用这种方法了,原因:使用麻烦,与jQuery的灵巧特色相违背。

2. 特征检测法:根据浏览器是否支持特定功能来决定操作方式。

非精确,最安全

如果不关心浏览器的身份,仅在意浏览器的执行能力,那么使用这种方法足矣。

例如:

            var a;if(document.getElementsByName){               //如果存在getElementsByName,则使用该方法获取a元素a = document.getElementsByName("a");}else if(document.getElementsByTagName){       //如果存在getElementsByTagName,则使用该方法获取a元素a = document.getElementsByTagName("a")}

当使用对象,方法或属性时,可以先检测当前浏览器是否支持它。在逻辑表达式中,如果浏览器支持,则会返回该对象,属性或方法,这是JavaScript就会强制把这些对象或成员转换为true。如果不支持,则会返回undefined,JavaScript会自动把它转换为false。

注意:检测方法或函数时,不要加小括号,否则JavaScript解释器会调用该方法或函数,同时如果指定函数伙房发不存在,会产生编译错误。

检测浏览器类型:

js:var browser = navigator.userAgent;

jQuery: browser属性。允许检测4个最流行的浏览器类,如:Internet Explorer 、Mozilla、Webkit、Opera,以及每个版本信息标志。

可用标志包括:webkit、safari(deprecated)、opera、msie和mozilla。

$.browser 属性在jQuery 1.9已经被移除。用于返回用户当前使用的浏览器的相关信息。

不建议使用该属性来检测浏览器,因为它是根据navigator.userAgent属性来确定浏览器信息的,因此它的识别并不一定准确。

二、检测盒模型

jQuery.boxModel:标志可以获取当前页面使用的是哪一种盒模型。true:W3C标准盒模型;false:IE浏览器的盒模型

jQuery1.0 新增该静态属性;1.3中被标记已过时,请使用 jQuery.support.boxModel替代;1.8中被移除。

除IE浏览器外,其他浏览器都支持W3C标准盒模型,而IE浏览器能够根据页面模式(严格模式或怪异模式)有选择的使用不同类型的盒模型。如果页面顶部声明了文档类型(DOCTYPE),则IE也会采用严格模式,即W3C标准盒模型解析元素。如果文档当中没有包含文档类型(DOCTYPE),或者包含了无法识别的文档类型声明,即会以怪异模式显示,并按IE的传统的盒模型来解析元素。

IE传统的盒模型和W3C标准盒模型的区别:

1.IE传统盒模型:width和height属性包含内边距和边框宽度

2.W3C标准盒模型:width和height属性不包含内边距和边框宽度

用JavaScript检测盒模型:

<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>检测盒模型[JavaScript]</title><script src="js/jquery2.1.3.min.js"></script><script type="text/javascript">function isBoxModel(){var div = document.createElement("div");div.style.width = div.style.paddingLeft = "1px";document.body.appendChild(div);var width = div.offsetWidth;div.style.display = "none";document.body.removeChild(div);return width === 2;}window.onload = function(){alert(isBoxModel() && "支持W3C标准盒模型" || "支持IE的怪异解析模式");}</script>
</head>
<body>
</body>
</html>

三、检测功能或缺陷

jQuery的support属性:

返回一个Object对象,在该对象中包含了一组属性,他们代表了不同的浏览器功能或缺陷的存在的合集。

该对象的属性并不是一成不变的,jQuery也并不保证指定的属性在未来的版本中一定可用,这些属性主要供插件或内核开发人员使用。

jQuery笔记——工具函数——jQuery标志相关推荐

  1. jquery ie11 html函数,jQuery append()函数在IE11中失败

    我是Jquery 1.10.2版本.我的要求是在已经存在的xml的特定节点上添加一个xml节点.为此,我正在使用Jquery append()函数.在Chrome,Firefox和IE Edge中运行 ...

  2. 从零开始学习jQuery (九) jQuery工具函数

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  3. 从零开始学习jQuery (九) jQuery工具函数 【转】

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 我们经常要使用脚本处理各种业务逻辑, 最常见的就 ...

  4. Query框架学习第九天:jQuery工具函数介绍与使用

    j jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用j ...

  5. jQuery框架学习第九天:jQuery工具函数介绍与使用

    jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQu ...

  6. 【jQuery笔记Part1】06-jQuery对象与js对象转换

    jQuery对象与js对象转换 概念 为什么要转换 转化方法 JS对象 -> jQuery对象 jQuery对象 -> JS对象 原理图 jQuery笔记目录 概念 jQuery对象 是通 ...

  7. 尚硅谷 jQuery 笔记(张晓飞 2018)

    title: 尚硅谷 jQuery 笔记 date: 2020-11-24 21:40:50 toc: true description: jQuery是JS的一个封装的库函数集,用于DOM的CRUD ...

  8. 【jQuery笔记Part2】05-jQuery自定义动画

    jQuery自定义动画 简介 animate() 使用 操作多个属性 使用相对值 使用预定义的值 通过连缀或者顺序来实现列队动画 顺序写法 连缀写法 停止动画 延时动画 jQuery笔记目录 简介 j ...

  9. jQuery笔记综合

    jQuery笔记 一. jQuery入门 目标: 能够说出什么是jQuery 能够说出jquery的优点 能够简单使用jquery 能够说出dom对象和jquery对象的区别 1.jQuery概述 仓 ...

最新文章

  1. RecyclerView + SnapHelper实现炫酷ViewPager效果
  2. Hadoop JobHistory
  3. 【Spring】Spring 使用 Redis 事务
  4. java list详解_java集合List解析
  5. css规则、选择器(基础、复合)/选择器优先级
  6. 自写string.h头文件(部分)
  7. 注意力机制attention图解
  8. 在日软件工程师的远虑近忧
  9. 哥伦比亚大学计算机科学硕士排名,哥伦比亚大学计算机科学硕士排名第16(2020年TFE Times排名)...
  10. 京东商品详情查询接口V1新版接口
  11. 哆啦A梦纯HTML代码
  12. 单片机软件定时器V1.0,可大批量创建,操作简单
  13. PROE塑胶产品结构标准设计视频教程灯具设计
  14. java从倒数第n个指定字符串开始截取到最后
  15. 美通企业日报 | 爱茉莉太平洋与阿里巴巴达成战略合作;新富人群房地产投资比重提升...
  16. 20-CVPR-Multi-branch and Multi-scale Attention Learning for Fine-Grained Visual Categorization
  17. CTF --《亲爱的,热爱的》网络安全大赛 介绍
  18. 阿里巴巴/招行信用卡中心21届实习面试知识点汇总
  19. Excel如何破解vba的宏密码
  20. VS2010中MSCOMM 串口通信控件的注册使用

热门文章

  1. w3c标准语言的是什么,W3C标准及其规范 - Somuns的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. 老司机阿里巴巴为什么要带着这些YunOS硬件小伙伴一路向西?
  3. 【零基础系列】K-Means聚类算法
  4. html图片标签 imag
  5. 分享《Essential Linux Device Drivers》中文版高清电子版
  6. nexus5 博通芯片WIFI详解 (4)
  7. Windows 10 1809 on ubuntu1804 完美安装docker
  8. 可穿戴市场掘金:VC如何看上小小的ZEPP公司
  9. ArcGIS基础:要素转点、要素折点转点与面转线
  10. 待过猫厂、狗厂、鹅厂、猪厂的10年测试码农告诉你-测试计划与测试方案的区别?