Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не доступа к свойству стиля... 
:(
    Опции темы
zeralex
Дата 4.11.2009, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2009

Репутация: нет
Всего: нет



Пробую изменить свойства стиля для DIVа и не выходит...
Не работает одна строка JS:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="nojs">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>111</title>
<style>#nojsmessage{display:block;}</style>
<script language="javascript">
...
document.getElementById('nojsmessage').style.display='none';  /*Эта строка не хочет работать, друго код выполняется нормально*/
...
</script>
<body><div id="nojsmessage">MESSAGE</script></body></html>

Причем, если сделать:
alert(document.getElementById('nojsmessage').style.display); /*То вообще ничего не происходит*/

PM MAIL   Вверх
youri
Дата 4.11.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 2
Всего: 16



Цитата(zeralex @  4.11.2009,  11:46 Найти цитируемый пост)
Не работает одна строка JS

что значит не работает?
PM   Вверх
Amphiluke
Дата 4.11.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Очевидно, вы обращаетесь к элементу еще ДО того как он создан. Вызывайте методы типа getElementById только после завершения загрузки документа.
PM   Вверх
zeralex
Дата 4.11.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2009

Репутация: нет
Всего: нет



Я хочу получить видимый блок вверху страницы при отключенном JS. Когда он включен, то при помощи JS изменить свойство стиля блока display на none, чтобы сообщение не отображалось.

Код

element.style.display='none'; /*было block*/


Не меняется. Пробую его вывести через alert - тишина. Firebug показывает, что ничего не изменилось.

Сейчас попытался сделать так: задал два стиля nojsmessage, jsmessage и хочу их переключать
Код

...
document.getElementById('nojsmessage').id='jsmessage';
...


Код

...
<div id="nojsmessage">MESSAGE</div>
...


Для тэга <html> работает, для <div> нет. Почему?

PM MAIL   Вверх
Amphiluke
Дата 4.11.2009, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



У меня оба варианта пашут.
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ без названия</title>
<style type="text/css">
    #nojsmessage {display: block;}
    #jsmessage {display: none;}
</style>
<script type="text/javascript">
    window.onload = function() {
        document.getElementById('nojsmessage').id='jsmessage'; // or
        /* document.getElementById('nojsmessage').style.display = "none"; */
    }
</script>
</head>

<body>
<div id="nojsmessage">Please turn on Javascript..</div>
</body>
</html>

PM   Вверх
zeralex
Дата 4.11.2009, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.11.2009

Репутация: нет
Всего: нет



Да, видимо....

Решил проблему через CSS: 
Код

<html id="nojs" ...>

<style>
#nojs{ БЕЗ JS}
#js{ С JS }
.js { ВИДИМ БЛОК }
#js div.js{ НЕ ВИДИМ БЛОК }
</style>
<script ...>
document.getElementById('nojs').id='js';
</script>
...
<div class="js">
...


РАБОТАЕТ КАК ТОЛЬКО ОТКЛЮЧАЕШЬ JS!!!

Всем спасибо!

Кстати, если захочется расположить такое строго по центру для всех браузеров:

Код

<div class="js">
  <table width="100%" height="100%" border="0">
    <tr>
      <td align="center" valign="middle">
      <table width="300" height="150" border="0" bgcolor="#DF8C8E">
        <tr>
          <td>В вашем браузере отключен JavaScript!<br /> 
      Включите поддержку JavaScript для правильной работы сайта!<br />
      <a href="#">Как включить...</a></td>
        </tr>
      </table></td>
    </tr>
  </table>
</div>


Это проще, чем клеить всякие костыли для каждого браузера smile

Это сообщение отредактировал(а) zeralex - 4.11.2009, 15:25
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.