Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выдрать значение стиля (https://javascript.ru/forum/dom-window/13498-vydrat-znachenie-stilya.html)

BoFFka 01.12.2010 00:12

Выдрать значение стиля
 
Здравствуйте. Не могу узнать значение стиля. Стиль естественно в .css файле. Нужно чтобы значение Background-Color блока div вбивалось в текстовое поле. Сейчас выглядит примерно так:

document.form1.input1.value = document.getElementById('id').getStyle("background-color");


Фаерфокс и опера сжирают нормально, IE выдает ошибку на страницу и пишет "Объект не поддерживает это свойство или метод". Помогите пожалуйста поправить как надо.

ksa 01.12.2010 08:47

Как вариант...

document.form1.input1.value = document.getElementById('id').style.backgroundColor
;

Kolyaj 01.12.2010 09:32

http://javascript.ru/blog/Andrej-Par...cheniya-stilya

BoFFka 01.12.2010 09:37

Не катит так. Стиль в файле же, а даже если бы не в файле то выдает rgb(255, 255, 255) вместо #FFFFFF :-?

monolithed 01.12.2010 09:39

<style type="text/css">
a {margin-left: 10px;}
</style>
<script type="text/javascript">
window.onload = function(){
    document.getElementsByTagName('a')[0].onclick = function(){
        alert(window.getComputedStyle(this, null).marginLeft || this.currentStyle.marginLeft)
    };
    return false;
};
</script>
<a href="#">Нажми на меня</a>

BoFFka 01.12.2010 10:06

Возвращает цвет в формате rgb(255, 255, 255) :( Парсер дописывать?

ksa 01.12.2010 10:07

Цитата:

Сообщение от BoFFka
Не катит так. Стиль в файле же

Усилим нажим! :D

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type='text/css'>
div {
	width: 100px;
	height: 20px;
}
#b1 {
	background-color: red;
}
#b2 {
	background-color: rgb(200, 200, 200);
}
#b3 {
	background-color: #f0f0f0;
}
</style>
<script type="text/javascript">
function Go() { 
	alert(getBackgroundColor('b1'))
	alert(getBackgroundColor('b2'))
	alert(getBackgroundColor('b3'))
} 
function getBackgroundColor(Id) { 
	; // Получить первый абзац
	var o = document.getElementById(Id)
	var val
	// Сначала попробовать IE API
	if (o.currentStyle) {
		val = o.currentStyle.backgroundColor;
	} else if (window.getComputedStyle) {
		// Иначе  W3C API
		val = window.getComputedStyle(o, null).backgroundColor;
	}
	return val
}
</script>
</head>
<body>
<div id='b1'></div>
<div id='b2'></div>
<div id='b3'></div>
<input type='button' value='Go' onclick='Go()' />
</body>
</html>

Цитата:

Сообщение от BoFFka
выдает rgb(255, 255, 255) вместо #FFFFFF

Так как задали - так и выдаёт...

BoFFka 01.12.2010 10:15

Цитата:

Сообщение от ksa (Сообщение 81679)
Так как задали - так и выдаёт...

Так вот и именно что не выдает. Приведенный скрипт в файрфоксе три раза выдает rgb(бла, бла, бла)
А вот в IE и опере работает

ksa 01.12.2010 10:27

Цитата:

Сообщение от BoFFka
Приведенный скрипт в файрфоксе три раза выдает rgb(бла, бла, бла)
А вот в IE и опере работает

Вона чё... :(
Я-то смотрел именно в ИЕ и Опере... :)

Ну тогда дальше только "копытами, копытами" (с)

BoFFka 01.12.2010 10:30

;) знач буду "копытами"
всем спс за помощь :)


Часовой пояс GMT +3, время: 17:51.