Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2012, 21:44
Новичок на форуме
Отправить личное сообщение для wild_snail Посмотреть профиль Найти все сообщения от wild_snail
 
Регистрация: 05.04.2012
Сообщений: 6

Как получить путь до файла из css в firefox?
<style>
background:url(images/temp0.png);
</style>
<div class="myDiv">1</div>


$(document).ready(function(){
	$('div').each(function(){
                      alert($(this).css('backgroundImage'))
	})
})


Если путь до картинки правильный, то все норм, но если путь не правильный в ff показывает 'none', в то время как все остальные браузеры отображают именно то, что прописано в css. Кто-нибудь знает как заставить отображать в ff путь до картинки, даже если он не правильный?
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2012, 23:58
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,245

Попробовал по всякому.
Нифига.Все способы выдают 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>
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2012, 08:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Gvozd, что я делаю не так ?
<style>
div {
	background:url(asdasdas.png);
}
</style>
<div></div>
<script>
var div = document.getElementsByTagName('div')[0];
var computed = window.getComputedStyle(div, null);
var val = computed.getPropertyValue("background-image");
document.write(val);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2012, 12:03
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,245

Сообщение от melky
Gvozd, что я делаю не так ?
Очевидно, что ты тестировал запуская файл по HTTP, а я же запускал прямо с рабочего стола.
Как оказалось, именно при запуске с файловой системы FireFox и ведет себя пакостно.
wild_snail,
ну, вы слышали, собственно - тестируйте JS из-под веб-сервера, а не из файловой системы.
Браузеры в связи со своими правилами безопасности ведут себя из файловой системы не так же, как из-под веб-сервера.
<style>
div{
background:url(images/temp0.png);
}
</style>
<div class="myDiv">1</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$('div').each(function(){
                      alert($(this).css('backgroundImage'))
	})
})
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 11.05.2012, 20:09
Новичок на форуме
Отправить личное сообщение для wild_snail Посмотреть профиль Найти все сообщения от wild_snail
 
Регистрация: 05.04.2012
Сообщений: 6

Спасибо, очень помогли!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить список элементов в localStorage? Бобр Общие вопросы Javascript 8 17.09.2013 13:32
Как получить текст/код внешнего файла .js SellOut.Name Общие вопросы Javascript 2 27.08.2011 13:42
Как узнать размер загружаемого файла? shkarbatov Серверные языки и технологии 5 14.08.2011 16:12
Как получить указатель на элемент вызвавший функцию pelayo Общие вопросы Javascript 9 29.06.2010 22:32
Как получить список всех установленных плагинов VitAngel Internet Explorer 0 15.07.2009 08:13