对象检测是避免浏览器问题的最佳助手。不依赖浏览器种类和版本,依赖浏览器能力,一旦知道访问者的浏览器支持某些对象,就能安全启动脚本。

  function isCompatible(other) {
      // 使用能力检测来检测是否支持某些对象
      if( other===false
          || !Array.prototype.push
          || !Object.hasOwnProperty
          || !document.createElement
          || !document.getElementsByTagName
         ) {
           alert('TR- if you see this message isCompatible is failing incorrectly.');
           return false;
       }
      return true;
  }

使用对象检测的原则是:标准优于专有方法,先检查W3C的标准,再检查特定浏览器的专有方法。

很多情况下,尽量使用对象检测方法,因为其向前兼容性好。而浏览器检测,一来浏览器版本很多,解决了现有问题,但是将来还会有新的浏览器种类,或者新的浏览器版本,支持更多的属性和方法,但是现有脚本的检测程序又限制了这些新的种类,这样的浏览器检测向前兼容性不好。

转载于:https://www.cnblogs.com/taocom/archive/2012/04/07/2435819.html

对象检测和浏览器检测相关推荐

  1. JS window对象 Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本。...

    Navigator对象 Navigator 对象包含有关浏览器的信息,通常用于检测浏览器与操作系统的版本. 对象属性: 查看浏览器的名称和版本,代码如下: <script type=" ...

  2. userAgent,JS用户代理检测——判断浏览器内核、浏览器、浏览器平台、windows操作系统版本、移动设备、游戏系统

    1.识别浏览器呈现引擎 为了不在全局作用域中添加多余变量,这里使用单例模式(什么是单例模式?)来封装检测脚本.检测脚本的基本代码如下所示: 1 var client = function() { 2 ...

  3. php事件检测,细说浏览器特性检测(2)-通用事件检测_jquery

    在上一篇中介绍了jQuery1.4版本新增的几个浏览器特性检测方案和具体的目的,本文将以事件为中心,介绍一个较为完整.通用的事件检测方案. 事件检测,即检测某一事件在不同的浏览器中是否存在(可用),这 ...

  4. 检测Web浏览器上的内存泄漏

    目录 背景 拍摄堆快照 一个真实世界的例子--AsyncSubject 附加说明 兴趣点 下载源 - 1.2 KB 背景 当您关闭浏览器选项卡时,所有内存都将被释放.内存泄漏在Web浏览器上很可能不是 ...

  5. 一个前端博客(9)——浏览器检测和加载

    浏览器检测 浏览器检测是通过JavaScript BOM的navigator对象实现的. Navigator.userAgent W3C上:userAgent 属性是一个只读的字符串,声明了浏览器用于 ...

  6. 用户代理检测与浏览器Ua详细分析

    . 首页 博客园 联系我 前言:用户代理字符串与用户代理检测. 先看结论/可用代码. 浏览器市场份额现状. Mozilla Firefox. Microsoft Internet Explorer. ...

  7. js+jquery检测用户浏览器型号(包括对360浏览器的检测)

    做网站,js检测用户浏览器的版本,是经常要使用到,今天自己写了一个js,完成了对于一些常见浏览器的检测,但是,偏偏对于360浏览器的检测没有任 何办法,研究了一会儿,无果.无论是360安全浏览器,还是 ...

  8. 一些js代码,自己备用的。高手不要笑话我。。(跨浏览器基础事件,浏览器检测,判断浏览器的名称、版本号、操作系统)...

    跨浏览器基础事件 View Code 1 //跨浏览器添加事件 2 function addEvent(obj, type, fn) { 3 if (obj.addEventListener) { 4 ...

  9. php浏览器类型检测工具,php检测客户端浏览器类型的简单示例

    这篇文章主要为大家详细介绍了php检测客户端浏览器类型的简单示例,具有一定的参考价值,可以用来参考一下. 对php检测客户端浏览器类型代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

最新文章

  1. 关于敏捷开发的最佳实践和工具
  2. linux编程取消wait函数,Linux编程基础之进程等待(wait()函数).pdf
  3. memory matlab,memory – 在MATLAB中处理大量结构
  4. .net平台的rabbitmq使用封装
  5. activiti bpmn 安装不上_小猿圈之Eclipse安装Activiti插件(流程设计器)
  6. Linux下安装 Indy 到 Lazarus
  7. C#算法设计排序篇之04-选择排序(附带动画演示程序)
  8. 快速理解孤儿进程和僵尸进程
  9. 快手小剧场推出独立APP“追鸭”
  10. 如何获取k8s拓扑_k8s从安装到精通--Service 拓扑介绍
  11. Python 绘图利器 —— ggplot
  12. 【Prison Break】第四天(3.31)
  13. HDU 1576 A/B 扩展欧几里德算法
  14. Java解析KML文件
  15. docker image 重命名
  16. sus补丁分发,局域网自动打补丁服务的架设过程
  17. 荣耀绽放 | 白玉兰酒店荣膺金光奖“中国发展潜力酒店品牌”奖项
  18. [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化
  19. 分镜头脚本表格模板下载
  20. JS逆向之巨量创意signature签名

热门文章

  1. c语言中指针数组赋值字符串,C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)...
  2. mysql 查询后怎么定位列_MySQL如何定位并优化慢查询sql
  3. 画活动图教程_二次元人物头发怎么画?画好头发有什么技巧?
  4. libsvm使用心得
  5. 到底什么是云计算-转自http://blog.csdn.net/adwu73
  6. [vijos P1919] 最有活力的鲜花
  7. 【NOI2002】贪吃的九头龙
  8. 目前我国家庭计算机用户接入因特网的下述,目前我国家庭计算机用户接入因特网的下述几种方法中,速度最快的是________ 。...
  9. Coins POJ - 1742(题解)
  10. 今日头条屏幕适配方案落地研究