Доступ к пользовательской переменной CSS с помощью Javascript - PullRequest
2 голосов
/ 04 апреля 2011

У меня есть следующий стиль в CSS-файле

#galleryImages{
    position:absolute;
    top:24px;
    left:41px;
    width:900px;
    moving:false;
}

Когда я пытаюсь получить к нему доступ через Javascript, он возвращает undefined

Внешний CSS-код правильный, он возвращает другой стильпеременные правильно, а также getElementById

alert("External: " + document.styleSheets[0].cssRules[2].style.moving + 
    "\nInternal: " + document.getElementById("galleryImages").style.moving);

Он выдает предупреждение с:

External: Undefined
Internal: Undefined

Есть ли способ получить доступ к пользовательской переменной CSS через JavaScript?

Заранее спасибо

1 Ответ

4 голосов
/ 04 апреля 2011

Большинство (всех?) Браузеров не загружают неизвестный CSS в DOM, и JavaScript не может напрямую обращаться к стилям CSS напрямую, только к тем, которые загружены в DOM.

Единственный способ, которым я могу думатьбыло бы реализовать ваш собственный JavaScript-разбор CSS, но в большинстве случаев это, вероятно, было бы чрезмерным для того, что вы хотите сделать, и решение на чистом JavaScript или значение класса было бы лучше.

например, в HTML

<div class="moveable"></div>

Используя этот пример, вы можете использовать свой JavaScript, чтобы получить имя класса элемента, и если у него есть «подвижный» класс, вы знаете, что он может двигаться.

РЕДАКТИРОВАТЬ: В опубликованной ссылке @ Anurag на ошибку Mozilla упоминается, что неизвестные свойства CSS следует игнорировать как часть спецификации CSS 2.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...