[Javascript]客户端检测】的更多相关文章

客户端检测是一种行之有效的开发策略.但不到万不得已,就不要使用客户端检测.先设计通用的方案,然后根据浏览器之间的差异和各自的怪癖quirky,再使用特定于浏览器的技术增强该方案. 能力检测 Feature Detection 能力检测(又称特性检测)目标是识别浏览器的能力而不是识别特定的浏览器.只需根据浏览器支持的功能给出解决方案. 能力检测作为确定下一步解决方案的依据,而不是用它来判断用户使用的是什么浏览器. 基本模式: if( object.propertyInQuestion){ //使用…
1. Firefox  Gecko是firefox的呈现引擎.当初的Gecko是作为通用Mozilla浏览器一部分开发的,而第一个采用Gecko引擎的浏览器是Netscape6: 我们可以使用用户代理检测下:如下JS代码: var ua = navigator.userAgent; console.log(ua); 在windows下firefox下打印如下: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/…
ECMAScript虽然是Javascript的核心,但是要在web中使用Javascript,那么BOM才是核心,BOM为我们提供了操作访问浏览器对象的借口, 但是由于BOM没有标准规范,导致存在不一致的问题,所以这里需要客户端检测的方法,突破局限. 先找出设计通用的的方案,然后再使用特定与浏览器的技术增强该方案. 一.能力检测 能力检测的目的不是识别浏览器,而是识别浏览器的能力.不必顾及特定的浏览器,只需确定浏览器支持特定的能力. //浏览器检测的基本模式 if(object.propert…
隔了一段时间,现在开始看第8章. 第8章:BOM BOM提供了很多对象,用于访问浏览器的功能.BOM的核心对象是window,它表示浏览器的一个实例. window对象是通过javascript访问浏览器窗口的一个接口,又是ECMAScript中的Global对象. 所有在全局作用域声明的变量.函数都是window对象的属性和方法. 1. 窗口关系,框架 每个框架都有window对象,并在frames集合中 每个window对象都有name属性,其中包含框架名称 top对象始终指向最高(最外)层…
客户端检测一共分为三种,分别为:能力检测.怪癖检测和用户代理检测,通过这三种检测方案,我们可以充分的了解当前浏览器所处系统.所支持的语法.所具有的特殊性能. 一.能力检测: 能力检测又称作为特性检测,检测的目标不是识别特定的浏览器,而是识别浏览器的能力. 能力检测不必估计特定的浏览器,只需要确定当前的浏览器是否支持特定的能力,就可以给出可行的解决方案. var width = window.innerWidth; //如果是非 IE 浏览器 if (typeof width != 'number…
1.能力检测:能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力.(我的理解就是识别浏览器能做什么不能做什么) 2.怪癖检测:目标是识别浏览器的特殊行为.但与能力检测确认浏览器支持什么能力不同,怪癖检测是想要知道浏览器存在什么缺陷(“怪癖”也就是 bug). 3.用户代理检测:争议最大的一种客户端检测技术.用户代理检测通过检测用户代理字符串来确定实际使用的浏览器.在每一次 HTTP 请求过程中,用户代理字符串是作为响应首部发送的,而且该字符串可以通过 JavaScript 的 naviga…
web开发的理想状态之一是浏览器支持一组最常用的功能,但是在现实情况下,浏览器间的差异非常大,因此,为了兼容大部分的了浏览器,开发人员首先需要设计最通用的方案,然后再使用客户端检测的技术增强该方案.客户端检测技术包括能力检测.怪癖检测.用户代理检测,下面我们一一介绍. 一.能力检测  能力检测的目的不是为了识别浏览器,而是识别浏览器的能力:通过检测浏览器具有某种能力后,就可以给出对应的解决方案.如下例所示,IE5以及更早期的IE,不支持getElementById的方法来获取ID,但是支持doc…
用户代理检测 前面的文章介绍的是如何检测浏览器对某一功能的支持情况 但是在实践中我们有些时候免不了需要知道用户到底是用的什么浏览器对我们的站点进行访问 这也是统计用户行为的一部分 用户代理检测这种方式就是用于检测用户访问所使用的浏览器的 那么如何进行检测呢? 我之前的文章,讲JS的navigator对象的时候,其中有个 userAgent 属性 这个属性在每次http请求中都会携带在请求头中,这也是我们常说的用户代理字符串 但是要注意的是,这种客户端检测的优先级应该排在 怪癖检测.能力检测之后…
能力检测 浏览器厂商虽然在实现公共接口方面投入了大量的精力 但是每种浏览器仍旧存在许多差异 为了让网页能跨浏览器的运行,对浏览器差异做的兼容处理自然无法避免 其中最常用的也就是我们现在所说的能力检测 什么是能力检测呢? 说白了,能力检测就是判断浏览器是否具备某个特定功能 然后进行对应的操作 这和浏览器检测有什么区别呢?? 在很多情况下,我们纠结的不是用户使用的是什么浏览器 而是用户使用的浏览器是否有我们将要使用的功能,我们没有必要去管用户用的是什么浏览器,只需要知道用户浏览器有没有这项功能,有,…
Javascript与很多编程语言不同,它不能够控制其运行环境.再写php代码时,只要在服务器端部署了正确的版本,那么程序就绝对能够运行,对于其他python或ruby后端语言来说,也不存在什么灰色区域.Javascript就不同了,它与所有的前端语言一样,都需要各大浏览器的支持. 前端语言必须通过浏览器渲染页面时才能被运行和执行,服务器与客户端的浏览器通过HTTP请求进行通信,接受资源后的浏览器再进行渲染.有很多因素,诸如浏览器对各项功能的支持程度.网络连接速度.屏幕大小.渲染效率等,都是完全…