Подтвердить что ты не робот

Как читать неподдерживаемые свойства CSS браузера?

Сегодня я обнаружил, что в IE6, IE7 и IE8 можно читать неподдерживаемые свойства CSS с использованием метода .css() jQuery:

jQuery(node).css('transition');   // Returns the transition value 

Это позволило мне добавить резерв анимации для переходов CSS3 в эти браузеры в моем jQuery-плагине jquery.transitions(github.com/stephband/jquery.transitions). Джой.

Вопрос: возможно ли читать неподдерживаемые свойства CSS в других браузерах? Мои начальные тесты с использованием вышеуказанного метода в FF3.6 и IE9 оказались бесплодными. Есть ли другой способ, не разбирающий таблицы стилей?

4b9b3361

Ответ 1

Для IE9:

После некоторого тестирования я сделал еще одно открытие.

Хотя "переход" не поддерживается в IE9, он появляется в файле document.stylesheets [n].cssRules [n].cssText, в отличие от других браузеров, и в конечном итоге отображается как getComputedStyle (node).transition. Это означает, что чтение легко. Двойная радость!

Интересно, и, вероятно, бесполезно, все правила с префиксом появляются, так что вы можете читать -moz- и -webkit- префиксные правила в вашем JavaScript.

Для FF3.6/WebKit

Нет таких трюков для FF3.6 или ниже, или WebKit, хотя я не слишком волнуюсь. Я считаю, что прием FF4 будет довольно быстрым.

Ответ 2

Я не уверен, что этот метод будет работать слишком хорошо в большинстве браузеров, поскольку @BoltClock говорит, что это не то, что браузер должен делать, поэтому похоже, что вам просто повезло с IE.

Если бы я хотел предоставить такие функции, как это, я бы использовал Modernizr, чтобы обнаружить, какие функции отсутствуют.

Ответ 3

DOM Level 2 Style из 2000 что-то предусмотрело программный доступ к правилам, которые пользовательский агент не понял. Я написал ответ по старой спецификации и один из комментариев ссылается на bug, загруженный с Mozilla для его реализации.

Однако ни одна из поставщиков браузеров не реализовала эту функцию. Итак, в последней спецификации w3 полностью удалила эту функцию. Вы можете найти дискуссионный поток, требующий повторной реализации этой функции в спецификации, но это было в 2009 году, а сейчас 2011 и w3 не похоже на его добавление.

Итак, технически IE соответствовал спецификации, пока не появился новый:)

Ответ 4

В IE9 я обнаружил, что getComputedStyle не работает надежно для всех неподдерживаемых свойств, а это делает:

element.currentStyle.getAttribute('-some-test')