3

ブラウザーが svg フィルター (具体的には feGaussianBlur) をサポートしているかどうかを検出する機能が必要です。これをテストするにはどうすればよいですか?フィルタをサポートしていない Safari は、サイレントにフィルタを無視します。

4

3 に答える 3

4

おそらく、インターフェイスで使用可能な列挙型も確認できます。たとえば、次のようになります。

var supportsfilter = typeof SVGFEColorMatrixElement !== undefined && 
                     SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE==2;

そうすれば、https://stackoverflow.com/a/9767059/109374のように新しい要素を作成する必要がなくなります。これが Safari で期待どおりに機能するかどうかはテストしていません。

更新: modernizr に提出されたパッチ: https://github.com/Modernizr/Modernizr/pull/531

于 2012-03-19T13:33:40.970 に答える
2

GaussianBlur のプロパティの存在を調べるフィドルhttp://jsfiddle.net/yxVSe/を作成しました。GaussianBlur に method があるsetStdDeviationとします。そのメソッドの存在を確認し、失敗した場合は、現在のブラウザーがそのフィルターをサポートしていないという結論に達します。

このフィドルがチェックインされている場合、サファリのテキストは赤で表示されますが、Firefox では緑になります。

于 2012-03-19T08:36:06.990 に答える