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 19: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 19:54

Цитата:

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

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

izbash 03.10.2013 20:11

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

BETEPAH 03.10.2013 20:37

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

danik.js 03.10.2013 20:42

Цитата:

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

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


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