За последние 24 часа нас посетили 16718 программистов и 1611 роботов. Сейчас ищут 1380 программистов ...

Не работает style.display= в Mozilla Firefox

Тема в разделе "JavaScript и AJAX", создана пользователем Denis, 4 окт 2008.

  1. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    Вот они камни кроссбраузерности JavaScript =)) :

    [css]<style type="text/css">
    #form_data {
    display: none;
    }
    </style>[/css]

    HTML:
    1. <div id="form_data">
    2.    BlaBlaBla
    3. </div>
    Потом нажимаем на кнопку и оно должно появится =), но оно не появляется, вот текст кнопки:

    document.getElementById('form_data').style.display = "block";
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ошибаетесь. Тут Ваше незнание. В head нет такого тега div. И display: none не убирает div из тела документа, он просто его не показывает в отрисованном HTML.
    Варианты такие:
    ...ById("form_data").display = "block";
    -
    ...ById("form_data").className = "form_data"; (тогда в стилях должен быть такой класс)
    -
    Еще можно динамически подключить целый css файл.
     
  3. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Да не, у него просто проблема в том что у div'a id - data_form, а в js - form_data
     
  4. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    ммм нет это я ошибся когда писал в коде всё ОК =), черт поисправлял такой бред написал )) сам только просмотрел, в коде всё ок )), теперь можно перечитать заново
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Какой фаерфокс?
    Что пишет Javascript консоль?
     
  6. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    3.0.3

    Ошибка: [Exception... "Not enough arguments [nsIDOMHTMLSelectElement.add]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://127.0.0.2/J_common.js :: handleServerResponseDoLogin :: line 87" data: no]
    Источник: http://127.0.0.2/J_common.js
    Строка: 87

    [js]81. selectChars = document.getElementById('01_select');
    82. var chars = xmlDocument.getElementsByTagName('nickname');
    83. for (i = 0; i < chars.length; i++) {
    84. var tmp_option = document.createElement('option');
    85. setElemText(tmp_option, chars);
    86. tmp_option.value = getElemText(chars);
    87. selectChars.add(tmp_option);
    88. }[/js] но это совсем другой код я его комментил и без него тоже не работает
     
  7. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Exception это болезнь FF, текста о твоей ошибки тут нет.
    HTML:
    1.   <style type="text/css">
    2.   #form_data
    3.   {
    4.       display: none;
    5.   }
    6.   </style>
    7. </head>
    8. <div id="form_data">
    9.   BlaBlaBla
    10. </div>
    11. <input type="button" onclick="document.getElementById('form_data').style.display='block';">
    12. </body>
    13. </html>
     
  8. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    neverlose

    у тебя отработал этот код? то что ты написал?
     
  9. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
  10. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    Кстати когда закомментил 87 строчку всё норм стало.
     
  11. Denis

    Denis Активный пользователь

    С нами с:
    5 фев 2006
    Сообщения:
    92
    Симпатии:
    0
    Адрес:
    Украина, Одесса
    Опять черт )), а вот и решение:

    [js]try {
    selectChars.add(tmp_option, null);
    } catch(e) {
    selectChars.add(tmp_option);
    }[/js]
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Denis
    Теперь понимаешь, почему дизайнеры так говорят про ИЕ?