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

Пробема с document.getElementById('').value в IE

Тема в разделе "JavaScript и AJAX", создана пользователем rolling, 29 апр 2010.

  1. rolling

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

    С нами с:
    20 авг 2009
    Сообщения:
    75
    Симпатии:
    0
    IE матерится на строку
    Код (Text):
    1. current_menu_open = document.getElementById('current_menu_open').value;
    Чем ее можно заменить?[/code]
     
  2. rolling

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

    С нами с:
    20 авг 2009
    Сообщения:
    75
    Симпатии:
    0
    точнее, ошибка следующая
    "Сообщение: Объект не поддерживает это свойство или метод"
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    rolling
    какой тег?
     
  4. rolling

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

    С нами с:
    20 авг 2009
    Сообщения:
    75
    Симпатии:
    0
    Код (Text):
    1. <input type="hidden" value="0" id="current_menu_open" />
     
  5. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    rolling
    а если так
    [js]current_menu_open1 = document.getElementById('current_menu_open').value;[/js]
     
  6. rolling

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

    С нами с:
    20 авг 2009
    Сообщения:
    75
    Симпатии:
    0
    хм. выше указанная ошибка уже не выскакивает. Но необходимые действия не происходят.
    Никогда бы не подумал, что проблема в одинаковом имени. ИЕ полон загадок :)
    Буду разбираться дальше.
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    rolling
    проще имя id поменять чтобы не менять имя переменной во всем js коде
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Javascript код срабатывает раньше, чем отрисовывается DOM-дерево. Ставьте этот код на событие или на onload.
     
  9. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    [js]addDOMLoadEvent = (function(){
    var load_events = [],
    load_timer,
    script,
    done,
    exec,
    old_onload,
    init = function () {
    done = true;

    clearInterval(load_timer);

    while (exec = load_events.shift())
    exec();

    if (script) script.onreadystatechange = '';
    };

    return function (func) {
    if (done) return func();

    if (!load_events[0]) {
    if (document.addEventListener)
    document.addEventListener("DOMContentLoaded", init, false);

    document.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");
    script = document.getElementById("__ie_onload");
    script.onreadystatechange = function() {
    if (this.readyState == "complete")
    init();
    };

    if (/WebKit/i.test(navigator.userAgent)) {
    load_timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState))
    init();
    }, 10);
    }
    old_onload = window.onload;
    window.onload = function() {
    init();
    if (old_onload) old_onload();
    };
    }
    load_events.push(func);
    }
    })();
    addDOMLoadEvent(MyFunc);

    function MyFunc(){
    current_menu_open = document.getElementById('current_menu_open').value;
    alert(current_menu_open);
    } [/js]
    HTML:
    1. <input type="text" id="current_menu_open" value="321"/>
    неа... либо у меня addDOMLoadEvent неправильный
    а так работает
    [js]current_menu_open1 = document.getElementById('current_menu_open').value;
    alert(current_menu_open1);[/js]
    и на клик тоже не работает


    [js]function MyFunc(){
    current_menu_open = document.getElementById('current_menu_open').value;
    alert(current_menu_open);
    } [/js]

    HTML:
    1. <input type="text" id="current_menu_open" value="321" onClick="MyFunc()"/>
     
  10. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    заменить на
    [js]function MyFunc(){
      var current_menu_open = document.getElementById('current_menu_open').value;
    alert(current_menu_open);
    }[/js]

    так же возможно id="current_menu_open" - не единственный в документе?
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Ti
    нене, это просто для теста страничка, там кроме функции и инпута ничего нету)ето у ТС надо спрашивать)с var тоже не работает,так что проблема все таки в именах