Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.09.2008, 15:28
SunnyDay
 
Сообщений: n/a

insertBefore выдаёт ошибку и не работает на опере и фоксе
Собственно метод insertBefore отказывается работать с динамически созданными элементами - тоесть если я напишу так:

Код:
     document.write('<A id="bigf" href="">sdfsdf</A>');
     document.body.insertBefore(document.getElementById('bigF'), document.body.firstChild)
или так:

Код:
    el0=document.createElement('<A>');
    el0.id='bigF';
    el0.setAttribute('href',"gfdg");	 
    el0.innerHTML="dvfgsdvdfbvdfbfgb";
    document.body.insertBefore(document.getElementById('bigF'), document.body.firstChild)
то файрдебаг выдаёт мне странную ошибку:

uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLBodyElement.insertBefore]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: file:///C:/Documents%20and%20Settings/sukhov/%D0%A0%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B9%20%D1%8 1%D1%82%D0%BE%D0%BB/web%20mast/Work/123.htm :: put_code :: line 18" data: no]

работает нормально только в ишаке (как не странно..)

сделать через body.innerHTML немогу, потому что при присаивании body.innerHTML какого либо значения сбрасываются указатели на всякие ноды.

помогите, если ктонибудь с этим знаком
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2008, 16:33
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 24.07.2008
Сообщений: 1,271

Сообщение от SunnyDay Посмотреть сообщение
Код:
     document.write('<A id="bigf" href="">sdfsdf</A>');
     document.body.insertBefore(document.getElementById('bigF'), document.body.firstChild)
В дереве документа ещё не появился узел (ну не успел его браузер туда ещё вставить), а ты уже к нему обращаешся...

Сообщение от SunnyDay Посмотреть сообщение
Код:
    el0=document.createElement('<A>');
    el0.id='bigF';
    el0.setAttribute('href',"gfdg");	 
    el0.innerHTML="dvfgsdvdfbvdfbfgb";
    document.body.insertBefore(document.getElementById('bigF'), document.body.firstChild)
Элемент создал, к дереву не прикрепил и уже его ищешь (document.getElementById('bigF')). Во даёшь...
Код:
    var el0=document.createElement('а'); //!!! Какие нафиг "<A>"
    el0.id='bigF';
    el0.href = "gfdg";
    el0.innerHTML="dvfgsdvdfbvdfbfgb";
    
    document.body.insertBefore(el0, document.body.firstChild);
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2008, 09:41
SunnyDay
 
Сообщений: n/a

Спасибо за помощь гуру
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2008, 11:08
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 24.07.2008
Сообщений: 1,271

Я не гуру, я профессор
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 14:50