Показать сообщение отдельно
  #2 (permalink)  
Старый 11.05.2012, 00:58
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Попробовал по всякому.
Нифига.Все способы выдают none, либо пустую строку

Исключительно ради академического интереса, родилось решение которое я приведу ниже.
Предупреждение!!!
Его НИ В КОЕМ СЛУЧАЕ нельзя использовать, и оно написано только ради лулзов.
Оно ОЧЕНЬ медленное.
Потому что заключается в том, что для каждого дива проверяются ВСЕ CSS-правила, объявленные в подключаемых CSS-файлах, тегах STYLE, и импортируемых стилях
А это очень много правил на обычном сайте, так что это очень неоптимизированная операция.
К тому же данная функция возвращает массив всех фонов, ко торые подходят для данного элемента, и не делается проверки, кто из них более приоритетен.
Итак, JUST FOR LULZ
<style>
@import url("http://fonts.googleapis.com/css?family=Gorditas");
div {
	background:url(asdasdas.png);
}

</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$('div').each(function(){
		var backgrounds = checkCss(document.styleSheets, this);
		console.log(backgrounds);
	})
})
function checkCss(sheets, element) {
	var result = [];
	$(sheets).each(function(i, el) {
		try {
			$(el.cssRules).each(function(j, el2){
				if(el2.styleSheet) {//Импортированные стили
					result.concat(checkCss([el2.styleSheet]));
				} else {
					if($(element).is(el2.selectorText)) {
						result.push(el2.style.backgroundImage);
					}
				}
			});
		} catch(e) {
			console.log('security error', el, e);
		}
	});
	return result;
}
</script>
<div>
qwe
</div>
Ответить с цитированием