Консультация № 66841
13.12.2006, 18:08
0.00 руб.
0 1 1
Нужно динамически создавать ифреймы с одним и тем же src. Проблема в том, что при добавлении нового вот таким образом:
!(‘container‘).innerHTML += "< iframe src=index.php>< /iframe>";
все созданные до этого фреймы перегружаются, можно ли это обойти. Само собой можно добавлять не фреймы, а необходимую форму (в моем случае), но это лишний гемор, так как фремы все-равно придется создавать для другого, поэтому хотелось бы сделать именно так. Как контейнер использую div. Если кто-то с таким уже сталкивался подскажите плз.

Обсуждение

Неизвестный
14.12.2006, 00:36
общий
это ответ
Здравствуйте, Nexus!
Почему перезагружается: дело в том, что Вы каждый раз переписываете содержимое этого блока, несмотря на то, что стоит "+".
Выход такой:
nodeObj.appendChild(newChild);
В приложении пример...
Там динамически создаются фреймы (каждые 2 секунды, всего 8шт.). И открытие каждого последующего фрейма не влияет на предыдущие.
Вам из этого кода нужно всеголишь это:
var iframe = document.createElement(‘iframe‘);
iframe.src = ‘index.php‘;
document.getElementById(‘divFrame‘).appendChild(iframe);
Удачи!

Приложение:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="ru"><head><title>iFrame</title><meta name="content-type" content="charset=windows-1251"></head><body style="background-color:#fff"><div id="divFrame"></div><script type="text/javascript">var i = 1;function loadFrame(){ var iframe = document.createElement(‘iframe‘); iframe.src = ‘index.php‘; document.getElementById(‘divFrame‘).appendChild(iframe); if(i<8){ i++; setTimeout(loadFrame, 2000); }}setTimeout(loadFrame, 2000);</script></body></html>
Форма ответа