«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Может ли JavaScript получить доступ к пользовательским свойствам CSS с недопустимыми именами?

Может ли JavaScript получить доступ к пользовательским свойствам CSS с недопустимыми именами?

Опубликовано 4 ноября 2024 г.
Просматривать:771

Can JavaScript Access Custom CSS Properties with Invalid Names?

Доступ к недопустимым пользовательским свойствам CSS из JavaScript

Можно создавать собственные свойства CSS с помощью префикса -. Однако можно ли получить доступ к этим пользовательским свойствам из JavaScript?

К сожалению, ответ — нет, по крайней мере, в основных браузерах, таких как Chrome и Firefox. Пользовательские свойства CSS с недопустимыми именами просто игнорируются синтаксическим анализатором CSS. Например, рассмотрим следующий CSS:

div {
    -my-foo: 42;
}

Даже если этот CSS применен к элементу div, попытка доступа к свойству -my-foo с помощью JavaScript ничего не вернет. Объект CSSStyleDeclaration будет содержать только допустимые свойства, такие как ширина или высота.

Это поведение соответствует спецификациям CSSStyleDeclaration. В спецификациях указано, что объект должен включать только «указанные свойства», а это означает, что пользовательские свойства не распознаются. Однако некоторые реализации могут поддерживать доступ к пользовательским свойствам, но это не гарантировано.

Если доступ к пользовательским свойствам CSS имеет решающее значение для вашего приложения, вы можете обойти ограничения JavaScript, анализируя необработанный текст CSS. Это можно сделать с помощью свойства InnerText элемента стиля:

document.getElementsByTagName("style")[0].innerText

Хотя этот подход работает, он не так хорош, как просто, как доступ к свойствам непосредственно из объекта CSSStyleDeclaration. Более того, это требует дополнительного анализа и манипуляций с CSS-текстом.

Заявление о выпуске Эта статья перепечатана по адресу: 1729724578. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3