Как получить кросс-браузерную строку буквального стиля с помощью JavaScript? - PullRequest
3 голосов
/ 20 ноября 2010

Я обнаружил необходимость извлечения установленного стиля элемента в браузере (выполняется пользователем). Я должен уметь работать с полученными стилями на моем сервере (javascript и jQuery на стороне сервера). Теперь проблема заключается в том, что многие браузеры используют собственные соглашения об именах или предпочитают разделять сокращения на отдельные элементы, а другие нет.

Одним из решений для меня было бы получить буквальную строку стиля элемента (стили из таблиц стилей не должны учитываться). В Firefox / Chrome это будет работать:

node.getAttribute('style')

К сожалению, это невозможно в Internet Explorer 5/6/7. Я подумал, что это будет решение:

function getStyleStr(node) {
    return typeof(node.getAttribute('style')) !== 'string' ? node.style.cssText : node.getAttribute('style');
}

http://jsfiddle.net/8p5BN/6/

К сожалению, node.style.cssText не возвращает литеральную строку, как описано здесь: http://javascript.gakaa.com/style-csstext.aspx

Есть ли лучший способ обнаружить заданный стиль элемента в кросс-браузерном режиме с такими же именами?

1 Ответ

3 голосов
/ 18 апреля 2011

http://upshots.org/?p=112

Вам потребуется доступ к вычисленному стилю и / или текущему стилю элемента dom.Это должно дать вам все, что вам нужно, и будет учитывать все формы стилей (встроенные, объявленные css и унаследованные свойства)

...