2011-01-04 16 views
1

JavaScriptコードを書くときに、このブラウザで機能やコード行が途切れてしまうというパラノイアを揺さぶらないことがよくあります。 ...JavaScript言語機能が特定のブラウザでサポートされているかどうかを確認する方法

私が書いているコードがxブラウザと互換性があるかどうかを確認するにはどうすればよいですか?

+1

言語機能、またはDOM APIの互換性についてお話ししていますか?具体的な事例はありますか? – user113716

+0

私はこの質問があまりに単純すぎて適切に答えるには幅があると思います。あなたは言語の機能について尋ねました、それは 'const'やgettersなどのような実際の言語の新しいものを意味します。しかし、私はあなたがいくつかの手がかりを与えた 'document.activeElement'のようなDOMとBOMの機能を意味すると思います。しかし、あなたのすべてのニーズに対して1つの答えはありません。基本的な考え方は、ブラウザ検出に対する機能検出(http://ejohn.org/blog/future-proofing-javascript-libraries/)です。しかし、これは機能のバグについては説明しませんが、実装されているだけです。 –

答えて

4

基本的な機能の検出は、ウィンドウのプロパティを照会することで行うことができます(例:window.XMLHttpRequest)。

定義されたメソッドが互いに矛盾する可能性があるため、プロパティを照会するよりもはるかに複雑になります。その場合は実際にはシナリオに依存しますが、スクリーンからオフセットされた要素を作成してから一定のプロパティを設定し、その変更が反映されているかどうかを確認するなど、何らかの処理を行う必要がある場合もあります。

文字通り何千もの物が検出され、すべてが同じではないため、具体的に例を挙げておけば役に立ちます。

0

使いたい機能の機能は次のように存在するかどうかを確認することができます:http://robertnyman.com/javascript/:あなたは便利なこのテスト/適合表サイトを見つけるかもしれない

if(functionOrObjectName) { 
    //will execute if the function or object is defined 
} 
+1

変数または関数が定義されていない場合、エラーがスローされます。 'typeof undefinedVar'は未定義の変数と関数に対して' '未定義 ''を返します。あなたが何を提案するかは、あなたが不動産をテストしている場合にはうまくいく。したがって、グローバル関数とvars(ウィンドウオブジェクトの小道具)をテストするには、エラーを起こさない 'if(window.undefinedVar)'を使うことができます –

0

has.jsもチェックしてください。これは、機能の検出を少し簡素化する必要があります。

関連する問題