2014-09-06 5 views
0

Если у меня есть тег стиля на моей странице с css в нем, и я пишу следующий javascript, я получу текст css всех тегов стиля.Как я могу получить текст файла css через javascript?

//compatibility: all 
$("style").each(function() { 
    alert($(this).text()); 
}); 

Я хочу получить тот же текст из всех css-файлов ссылок, как и следующий скрипт.

//compatibility: IE Only 
$("link").each(function(){ 
    alert(this.sheet.cssText); 
}); 

Есть ли перекрестная современная версия браузера, описанная выше?

+0

'document.styleSheets'. – dfsq

+0

document.styleSheets.cssText - это только IE. есть ли другой способ получить его через document.styleSheets? – user3693957

ответ

0

Единственным возможным решением является использование AJAX:

$("link").each(function(){ 
    $.get(this.href, function(css){ 
     alert(css); 
    }); 
}); 

Или вы можете использовать document.styleSheets

Вы можете перебирать таблицы стилей:

var styleSheets = document.styleSheets; 
for(var i = 0; i < styleSheets.length; i++){ 
    alert(styleSheets[i].cssRules) 
} 
+0

Я не думаю, что могу получить содержимое внешнего css-файла с помощью метода ajax и итерации по стилю, чтобы получить cssRules или cssText - только IE. Я ищу метод перекрестного браузера. – user3693957

+0

@ user3693957 Почему не следует использовать метод ajax в IE? – idmean

+0

вы не можете сделать запрос ajax внешнему ресурсу. то есть он не может быть из другого домена. – user3693957

1

Другой способ доступа к CSS правило без фактического доступа к таблице стилей - это создать элемент, применить к нему правило и затем получить доступ к его свойствам с помощью jQuery. Что-то вроде этого:

var NewElement = $('.SomeClass'); 
var TheHeight = NewElement.prop('height'); 

Не уверен, что это поможет, но это идея. Что вы пытаетесь сделать в любом случае?

Edit:

var sheet = document.styleSheets[0]; 
var rules = sheet.cssRules || sheet.rules; 

rules[0].style.color = 'red'; 

Это из ответа here Я добавил jsFiddle Обратите внимание, что вы должны выбрать правильный индекс таблицы стилей.

+0

нет, это не поможет. Я хочу искать токен в тексте css и создавать на его основе новый динамический стиль. например: я хочу создать новый стиль, основанный на токенах динамического цветового кода. DIV {цвет: # COLOR1CODE #}. это все равно. – user3693957

+0

Я не понимаю этого: «Я хочу создать новый стиль, основанный на токене динамического цветового кода». – frenchie

+0

Я хочу заменить этот css div {color: # COLOR1CODE #} с этим div {color: red} – user3693957

Смежные вопросы