2011-10-05 5 views
8

私はdeveloper.mozilla.orgとApple devドキュメントのドキュメントを見てきましたが、特定のHTMLタグが特定のeventListenerをサポートしているかどうかをプログラムで判断できるかどうかを説明するドキュメントは見つかりません。どのようにHTMLオブジェクトがリッスンできるイベントをプログラムで決定しますか?

私は、クリックするものがないので、<script>タグはクリックリスナーをサポートしないことを知っていますが、どうすればそれを知ることができますか?

各タグでサポートされているイベントのどこかに簡単な参照がありますか?

答えて

5

Perfection Killsによると、そうすることができます、いくつかのエッジ例外:

トリックは、多くの近代的なブラウザが要素に存在しているように、イベント名に対応するプロパティを報告することです。

基本的には、コードは次のようになります。

'onclick' in document.documentElement; // true 
'onclick2' in document.documentElement; // false 

彼はさまざまなブラウザでのイベントのサポートを検出するためにそれを使用していますが、また要素がイベントをサポートしているか否かを検出するために使用することができます。

イベントは、実際にそのイベントを発生させる可能性のある要素でチェックする必要があります。

だから、あなたもこのような結果を取得:

'onreset' in document.documentElement; // false 
'onreset' in document.createElement('input'); // true 
+1

document.createElement( 'script')の '' onclick 'がtrueを返すので、これは*正確に*あなたが望むことではないでしょう。しかし、単に '

0

iはthis

を読むためにあなたを教えて...そしてあなたが考えなければならない最高のものは、イベントが唯一のDOMオブジェクトのためのものであるということです。その後、DOM内のすべてのオブジェクトは、イベントを持つことができます(しかし、リストを読んでください)。

関連する問題