【问题标题】:Feature-detect: mutation-event availability in JavaScript?功能检测:JavaScript 中的突变事件可用性?
【发布时间】:2019-09-23 00:32:02
【问题描述】:

我的 JavaScript 如何检测事件是否可用?

我知道一些很棒的 event-compatibility tables,但我需要使用特征检测,而不是浏览器嗅探和查找表。

具体来说,我的 JS 充分利用了 DOM 突变事件(DOMNodeInsertedDOMSubtreeModified)——它们在除(当然)Internet Explorer 之外的所有浏览器中都运行良好。

那么,我如何检测浏览器是否支持DOMNodeInserted

【问题讨论】:

    标签: javascript cross-browser dom-events feature-detection mutation-events


    【解决方案1】:

    如果你只是想检查浏览器是否支持突变事件,你可以使用这个简单的测试:

    var hasMutationEvents = ("MutationEvent" in window);
    

    以下是一些流行浏览器的结果: http://www.browserscope.org/browse?category=usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA

    要在另一个浏览器中运行 browserscope 测试,请访问此处: http://jsbin.com/aqeton/4/

    【讨论】:

      【解决方案2】:

      这个问题已经很老了,但如果其他人偶然发现它,这个答案中解释了一种检测突变事件的解决方案: How to check browser support for capabilities / events?

      从那个答案:

      您无法检测到突变事件,而modernizr 对此不起作用...

      “检测”对突变事件的支持的唯一方法是尝试触发该事件。

      对于正常事件,请使用 takteek 答案中的 perfectkills 文章。这似乎仍然不支持嗅探一些新的 HTML5 事件,例如“输入”。

      【讨论】:

        【解决方案3】:

        我在谷歌上看了一会儿。这看起来可能就是您想要的:

        http://perfectionkills.com/detecting-event-support-without-browser-sniffing/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-17
          相关资源
          最近更新 更多