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 p = document.createElement("p"); p.style.width = p.style.paddingLeft = "1px"; document.body.appendChild(p); var width = p.offsetWidth; p.style.display = "none"; document.body.removeChild(p); return width === 2; } window.onload = function(){ alert(isBoxModel() && "支持W3C标准盒模型" || "支持IE的怪异解析模式"); } </script> </head> <body> </body> </html>
三、检测功能或缺陷
jQuery的support属性:
返回一个Object对象,在该对象中包含了一组属性,他们代表了不同的浏览器功能或缺陷的存在的合集。
该对象的属性并不是一成不变的,jQuery也并不保证指定的属性在未来的版本中一定可用,这些属性主要供插件或内核开发人员使用。
以上是jQuery笔记——工具函数——jQuery标志的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境