Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как отловить изменение computedStyle элемента (https://javascript.ru/forum/events/32646-kak-otlovit-izmenenie-computedstyle-ehlementa.html)

danik.js 24.10.2012 14:48

Как отловить изменение computedStyle элемента
 
Нужно своевременно отреагировать на изменение некоторых css-свойств объекта. Причем необязательно новые свойства должны быть заданы в атрибуте style. свойства могут измениться у родителя и унаследоваться к примеру. Либо свойства могут быть заданы через css. В общем нужно отследить изменение в computedStyle элемента.

Какие события позволят это сделать?

melky 24.10.2012 15:56

нет таких.

danik.js 25.10.2012 01:39

Печально.

Такие возможности влекут за собой проблемы с производительностью?
Или никому такое просто не нужно?

Или как обычно - проблем нет, всем нужно, но w3c пока проснутся, пройдет пара-тройка лет ?

Нашел такую либу: http://code.google.com/p/css-events/

Но там все реализуется по-жесткому, путем пропатчивания прототипов элементов.

melky 25.10.2012 06:09

если можно добраться до сеттера - то лучше в нём такой хук сделать, чем прототипы патчить ... т.е. все стили должны устанавливаться через какую-нибудь window.setStyle.

Aetae 25.10.2012 11:25

Проблемы с производительностью это само собой.
Но основная суть в том, что нормальный программист знает что у него происходит на странице: если что-то изменило стиль, то именно в той функции что производит изменения и вносятся нужные дополнения.

Your 25.10.2012 13:51

Если хотите отлавливать стили, нужно писать громадный шаблон css, я делал давно такую хренатень.

Там дурдом))), не советую так делать, я забил на это.
Сделал парсинг и все дела.

danik.js 25.10.2012 15:44

Цитата:

Сообщение от Aetae
нормальный программист знает что у него происходит на странице

А как нормальный программист может узнать что происходит на странице у того, кто подключил его скрипт?

Речь идет не о собственной страничке, а о скрипте, подключаемом к любой странице.

melky 25.10.2012 16:30

Цитата:

Сообщение от danik.js (Сообщение 212232)
А как нормальный программист может узнать что происходит на странице у того, кто подключил его скрипт?

Речь идет не о собственной страничке, а о скрипте, подключаемом к любой странице.

а. так бы сразу и сказал!

можно попробовать с помощью __defineSetter__, onpropertychange, но я не думаю, что это принесёт какой-то успех.

danik.js 25.10.2012 16:40

Походу на сегодня эта задача не решаема. Пока что стоит костыль ввиде таймера, по которому проверяются изменения.

Если прямое изменение атрибута style еще может быть можно отловить, то изменения наследуемых, или указанных через селектор, стилей уже никак не отловишь... Чтож, придется подождать w3c годик-другой...


Часовой пояс GMT +3, время: 04:05.