IT入门 > 图文教程 > javascript >

IT入门 > 图文教程 > javascript >

jQuery - 浏览器特性检测"$.support"

  你会看到这个提示,那是因为你的系统无法识别某栏目的模型信息,或者你新建模型后,没为这个模型设计单独的模板。不同模型的文档浏览页的模板为:article_模型名字标识.htm 如“article_article.htm”,更多的信息你可以在频道模型管理的地方查看。
文件类型 内容:
模板调用标记:
.exe
语言 内容:
模板调用标记:
简体中文
软件类型 内容:
模板调用标记:
国产软件
授权方式 内容:
模板调用标记:
共享软件
操作系统 内容:
模板调用标记:
软件等级 内容:
模板调用标记:
3
官方网址 内容:
模板调用标记:
演示网址 内容:
模板调用标记:
软件大小课程时长 内容:
模板调用标记:
下载资料 内容:
模板调用标记:
详细介绍 内容:
模板调用标记:

jQuery从1.9版本开始废弃了一个对象 $.browser 。此对象在jQuery1.9之前的版本中,常用于浏览器的检测,比如

$.browser.msie;

$.browser.safari;

$.browser.mozilla;

$.browser.opera;

...

可见,我们直接使用 $.browser[browser-keyword] 即可方便的判断当前宿主浏览器是哪种浏览器,真是实用的特性啊。

但是如你所见,jQuery从1.9版本开始竟然废弃了这个对象。我当时还真是一时想不明白,这到底是为何呢?jQuery信奉的准则不是简单么,难道”write less, do more”是说着玩的?

后来仔细一想,不对啊。jQuery这样的成熟项目,不可能会做一些看起来脑残的事情啊。经过一番资料查阅,我终于悟了。

jQuery从1.9开始,使用 $.support 来代替 $.browser 。这么说其实也不准确,应该说废弃了 $.browser ,但是提供了一个新的对象,也就是 $.support 。但是这个对象并不是为了判断浏览器而产生的。准确的说,它的用处是 检测浏览器特性的。

也就是说,jquery不再提供赤裸裸的浏览器种类判断,而且转向提供浏览器特性的判断。另一方面,jquery的官方文档中并不建议直接使用 $.support 来进行浏览器特性的判断,而是推荐采用额外的第三方库来做这个事(比如 Modernizr ),而这个$.support 对象,jQuery更加倾向是jQuery自己内部使用的。

那么,jQuery为何要做这样的事情呢?

个人觉得最本质的原因是这样的,我们应该以发展的眼光去看待事物。

世界万物都是发展的,浏览器也是在不停的发展。如果我们只是将目光限定在浏览器种类的检测上,那如果早先被人诟病的浏览器经过发展,万一变成业界的事实标准,到时我们浏览器检测不是很尴尬?

另一方面,相对于浏览器种类检测,浏览器特性检测从某种程度上说更加灵活。

再者,我们需要检测浏览器的原因往往是有一些特性在不同的浏览器上可能会有不同的实现,有的浏览器支持,而有的浏览不支持。所以我们只检测相关的浏览器 特性不是更加理所应当的吗?

所以,检查浏览器的种类是不科学的,也是不符合可持续发展观的。特性检查才是更加成熟的方案!

下载级别 内容:
模板调用标记:
0
需要金币 内容:
模板调用标记:
0
课程难度 内容:
模板调用标记:
0
(责任编辑:zengmumu)
    广告位API接口通信错误,查看德得广告获取帮助