Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проблема с getComputedStyle() (https://javascript.ru/forum/events/41909-problema-s-getcomputedstyle.html)

izbash 03.10.2013 18:24

Проблема с getComputedStyle()
 
Здравствуйте!

Пустяковая и очень примитивная ошибка, и тем не менее не могу разобраться!

HTML:

<!doctype html>
<html>
<head>
	<meta charset="utf-8" />
	<title></title>
<link rel = "stylesheet" type = "text/css" href = "style.css" />
<script src="script.js"></script>
</head>
<body>
<div id="bod"></div>
</body>
</html>


CSS:

Код:

html {
        background-color: #1F528B;
        height: 100%;
}

#button {
        width:100px;
        height:100px;
        background-color:white;
        -webkit-border-radius: 15px;
        border:2px solid green;
}

#bod {
        -webkit-border-radius: 20px;       
        background-color: #16A085;       
        margin: 50px auto;       
        width: 300px;
        height: 300px;
}

JS:

var bod = document.getElementById("bod");
var computedStyle = window.getComputedStyle(bod,"").backgroundColor;
alert(computedStyle);


Пытаюсь поймать и вывести свойство, но без успешно, в чем причина?

danik.js 03.10.2013 18:54

Цитата:

Сообщение от izbash
Пытаюсь поймать и вывести свойство, но без успешно, в чем причина?

На момент выполения скрипта документ еще не загружен. Перемести скрипт ниже, либо повесь обработчик на DOMContentLoaded

izbash 03.10.2013 19:11

Благодарю! Не знал этой интересной тонкости!

BETEPAH 03.10.2013 19:37

здесь могла бы возникнуть еще одна тонкость. Если бы в первой строке скрипта был опущен var, этот код приводил бы в к ошибке в IE8-, поэтому на всякий случай лучше избегать называть переменные такими же именами, какие используются для ID элементов.

danik.js 03.10.2013 19:42

Цитата:

Сообщение от BETEPAH
здесь могла бы возникнуть еще одна тонкость. Если бы в первой строке скрипта был опущен var, этот код приводил бы в к ошибке в IE8-, поэтому на всякий случай лучше избегать называть переменные такими же именами, какие используются для ID элементов.

Неправильный вывод.
1) Никогда не забывать var.
2) Не засорять глобальную область видимости, для этого оборачиваем код в (function(){ ... })()


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