Поддержка обнаружения функций для фильтров SVG

Мне нужно, чтобы функция определяла, поддерживает ли браузер фильтры svg (feGaussianBlur, если быть точным). Как мне пройти тестирование для этого? Safari, который не поддерживает фильтр, молча игнорирует фильтр.

3 ответа

Решение

Вы также можете проверить перечисления, доступные на интерфейсах, например:

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

Таким образом, вам не придется создавать новые элементы, как в /questions/7488391/podderzhka-obnaruzheniya-funktsij-dlya-filtrov-svg/7488402#7488402. Я не проверял, работает ли это так, как ожидалось в Safari.

Обновление: патч представлен модернизму: https://github.com/Modernizr/Modernizr/pull/531

Я создал скрипку http://jsfiddle.net/yxVSe/ которая исследует существование свойств GaussianBlur. Скажем, у GaussianBlur есть метод setStdDeviationмы проверяем существование этого метода, когда при неудаче мы приходим к выводу, что текущий браузер не поддерживает этот фильтр.

Когда эта скрипка включена, тексты в сафари будут красным, а в Firefox - зеленым.

Я добавил небольшую модификацию для устаревшей ошибки Android

var supportsfilter = window['SVGFEColorMatrixElement'] !== undefined && SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE == 2
Другие вопросы по тегам