Показать сообщение отдельно
  #4 (permalink)  
Старый 13.04.2010, 19:19
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Должно работать, но, опять же, зачем нам ждать окончания загрузки, если document.body доступен, если скрипт находится после отрывающего тега <body>?

Зачем перезаписывать всё значение стиля, если меняется только style.backgroundImage()?

Гхм… и, кстати, используя нехитрый прием css, можно разместить код прямо в шапке:
(пощелкайте «посмотреть» несколько раз)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title></title>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
		<style type="text/css">
			body {background: url(http://javascript.ru/forum/images/ca_serenity/misc/logo.gif) 50% 50% no-repeat}
			/* у body картинка с javascript.ru посередине */
			.skin-night body {background-image: url(http://www.google.com/intl/ru_ALL/images/logo.gif)}
			/* а у body, который внутри элемента с нужным классом — другая картинка, но все остальные параметры такие же */
		</style>
		<script type="text/javascript">
			if (Math.random()<.5){
				document.documentElement.className += " skin-night";

				/* с вероятностью 50% добавляем класс тегу html, который к этому моменту уже точно существует */
			};
		</script>
	</head>
	<body>
		<p>Lorem Ipsum</p>
		<p>Lorem Ipsum</p>
		<p>Lorem Ipsum</p>
	</body>
</html>

Пользователь без яваскрипта не останется без бекграунда, да и вообще, ничего страшного не произойдет. Картинку можно поменять, не меняя логики скрипта. Да и к тому же, можно, скажем, менять цвет ссылок в зависимости от установленного класса. Профит, да и только!
Ответить с цитированием