欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

不使用Sniffing,如何检测事件?

程序员文章站 2022-04-28 21:24:51
...
由于浏览器嗅探器不完全可靠,所以我们需要一种更好的方式来检测事件。

Kangax有一个非常好的文章,主题是如何在浏览器中支持事件的检测,他进行了深入的研究,最终得到了一个不错的通用解决方案:

var isEventSupported = (function(){
    var TAGNAMES = {
      'select':'input','change':'input',
      'submit':'form','reset':'form',
      'error':'img','load':'img','abort':'img'
    }
    function isEventSupported(eventName) {
      var el = document.createElement(TAGNAMES[eventName] || 'div');
      eventName = 'on' + eventName;
      var isSupported = (eventName in el);
      if (!isSupported) {
        el.setAttribute(eventName, 'return;');
        isSupported = typeof el[eventName] == 'function';
      }
      el = null;
      return isSupported;
    }
    return isEventSupported;
  })();

他提供了一个简单的测试案例,您可以对其进行点评。