8

イベントが利用可能かどうかを JavaScript で検出するにはどうすればよいですか?

私はいくつかの優れたイベント互換性テーブルを認識していますが、ブラウザー スニッフィングとルックアップ テーブルではなく、機能検出を使用する必要があります。

DOMNodeInserted具体的には、私の JS は DOM ミューテーション イベント (および)を大いに活用していますDOMSubtreeModified。これは、(もちろん) Internet Explorer を除くすべてのブラウザーでうまく機能します。

では、ブラウザが をサポートしているかどうかをどのように検出しDOMNodeInsertedますか?

4

3 に答える 3

8

ブラウザが一般的なミューテーションイベントをサポートしているかどうかを確認したいだけの場合は、次の簡単なテストを使用できます。

var hasMutationEvents = ("MutationEvent" in window);

多数の人気のあるブラウザの結果は次のとおりです 。http ://www.browserscope.org/browse?category = usertest_agt1YS1wcm9maWxlcnINCxIEVGVzdBjEkNAPDA

別のブラウザでbrowserscopeテストを実行するには、http: //jsbin.com/aqeton/4/にアクセスしてください。

于 2012-03-21T20:25:37.020 に答える
4

この質問はかなり古いものですが、誰かがそれに遭遇した場合に備えて、突然変異イベントを検出するための解決策がこの回答で説明されています: 機能/イベントのブラウザサポートを確認する方法は?

その答えから:

ミューテーションイベントを検出することはできません。modernizrはこれには機能しません...

ミューテーションイベントのサポートを「検出」する唯一の方法は、イベントをトリガーすることです。

通常のイベントについては、takteekの回答にあるperfectionkillsの記事を使用してください。これはまだ「入力」のようないくつかの新しいHTML5イベントのスニッフィングをサポートしていないようです。

于 2011-06-05T23:06:01.020 に答える
2

ちょっとグーグルで調べてみました。これはおそらくあなたが望むもののようです:

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

于 2011-02-03T03:02:14.707 に答える