3

以前は、ブラウザスニッフィングを使用して、特定のイベントまたは機能が利用可能かどうかを推測していました。ブラウザのスニッフィングは、機能のスニッフィングを優先して「非推奨」または「回避」されていることを理解しています。特定のイベントを処理できるかどうかを確認する方法を教えてください。

例にとってみましょうDOMNodeInserted。Chrome、FF、Safariでサポートされていますが、IEではサポートされていません。このイベントが利用可能な場合、どうすればスニッフィングできますか?図書館はありますか?どうやって適切な機能スニッフィングをしますか?

4

3 に答える 3

6

ミューテーションイベントを検出することはできず、modernizrはこれに対して機能しません(人々は事実上の答えとしてそれを吐き出すため)。

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

var div = document.createElement('div'), supported = false;
div.addEventListener('DOMNodeInserted', function(){ supported = true; });
div.appendChild(div.cloneNode(true));

イベントリスナーが非同期であるため、線形コードの場合、上記のコードはそのままでは機能しないことに注意してください。一般的な考え方は有効ですが、おそらくコールバックを使用して実装するのが最適です。

于 2011-04-19T07:59:59.237 に答える
2

チェックアウトhttp://www.modernizr.com

于 2011-04-19T07:56:06.387 に答える
-1

一般的なものに答えるために-機能スニッフィングを行うにはどうすればよいですか-私はjQuery.supportオブジェクトを使用します。

于 2011-04-19T09:25:01.770 に答える