对象检测和浏览器检测

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

  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的标准,再检查特定浏览器的专有方法。

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

posted @ 2012-04-07 11:44  susubanana  阅读(222)  评论(0编辑  收藏  举报