Проблема в document.write при использовании setInterval()
Вот у меня проблема, нужно что бы срабатывал некий скрипт(банер), после того как отработали мои(они срабатывают после загрузки DOM).
Что делаю: ставлю флаг loadBanerLoaded который принимает значение true, только тогда когда отработают основные скрипты, а другой код обрамляю var _timerRight_ban = setInterval( function() { if (loadBanerLoaded) { clearInterval(_timerRight_ban); document.write ("Что то банер пишет"); } }, 10); Если не использовать setInterval(), то срабатывает document.write ("Что то банер пишет"); и в нужном мести пишет что надо. Но при использовании setInterval(), вся страница переписывается document.write(). Почему так происходит? Как можно решить проблему? :( |
Потому что document.write() пишет в документ в тот момент когда выполняется и туда, где выполняется.
В случае с интервалом текущий документ уже закрыт для записи и document.write() перезаписывает документ. |
Цитата:
var FF = function (){document.write}; к DOM элементу, наподобие innerHTML? |
Нет. Вам нужно будет работать с DOM элементами, если вы хотите сделать что-то после загрузки документа.
|
Нет никакой разницы как оформлять, если документ уже загружен document.write() попытается его перезаписать.
Если скрипт, который вы хотите подключить после загрузки DOM, использует document.write(), то опять же - дело гиблое. Можно, конечно, в отдельных случаях сделать замену document.write (через DOM), но это не есть карашо, не тревиально и работает через раз... |
Цитата:
А при этом способе не возникнет аналогичная ошибка? ведь document.write() там будет сидеть всеравно :confused: |
Вам говорят не использовать document.write вообще, если необходимо произвести какие-либо действия над готовым документом. Никакой AJAX тут не нужен.
|
Цитата:
|
Выход один: почитать про работу с DOM в JavaScript. Про то, как создавать и перемещать DOM-узлы. На сайте больше чем достаточно информации по этому вопросу.
|
Octane,
Тут немного сложнее - скрипты сторонние, в них document.write. Не заставишь же их переписать свои скрипты, чтоб они работали после загрузки DOM. |
Часовой пояс GMT +3, время: 16:46. |