TheRedEye Ответов: 1

Как запросить таблицу стилей для доступных классов CSS?


Я разрабатываю Asp.net приложение MVC с bootstrap, где я хотел бы, чтобы пользователь выбрал значок на основе списка глифов, которые предоставляет bootstrap.

Есть ли какой-то метод JQuery, с помощью которого я могу запросить, какие классы css доступны для текущей страницы?

Что я уже пробовал:

Я еще пока не пробовала ничего

1 Ответов

Рейтинг:
4

Richard Deeming

Существуют способы запроса правил из загруженных таблиц стилей:
jquery-листинг известных CSS-классов с использованием Javascript-Stack Overflow[^]

function listAllCssSelectors(){
    var result = [];
    
    var sheets = document.styleSheets, sheetCount = sheets.length;
    for(var i = 0; i < sheetCount; i++) { 
        try {
            var rules = document.styleSheets[i].cssRules, ruleCount = rules.length;
            for (var j = 0; j < ruleCount; j++) {
                var selector = rules[j].selectorText;
                if (selector) {
                    result.push(selector);
                }
            }
        }
        catch (e) {
        }
    }
    
    return result;
}

ОДНАКО, если какая - либо таблица стилей загружена из другого домена - например, если вы используете CDN-то вы не можете получить доступ к ее правилам. То try..catch блок выше проглотит исключение, но метод не вернет никаких правил для этих внешних таблиц стилей.

Например, запуск метода в CodeProject возвращает в общей сложности три селектора, поскольку большинство таблиц стилей размещены в другом домене.

Поскольку в текущей версии Bootstrap всего 263 Глификона, вероятно, было бы проще создать статический список.