Скрипты html-документа и событие DocumentComplete
От: pavelsua  
Дата: 30.11.07 18:31
Оценка:
Доброго времени суток!

Возникла такая проблема:
Есть IE'шный плагин, обрабатывающий событие DocumentComplete и встраивающий дополнительный html в код документа. Далее, текущий документ заменяется на вновь созданный, что в свою очередь приводит к повторному выполнению скриптов, находящихся в теле документа!
Все бы ничего, но на некоторых страницах подобные скрипты добавляют линки или банеры, а при описанном выше сценарии данные скрипты, отработав дважды, приводят к дублированию этих самых линков/банеров. Происходит это из-за того, что скрипты в теле документа отрабатывают еще до возникновения событий DocumentComplete и DownloadComplete

Приделать "костыль" не есть проблема! Другое дело, что хотелось бы без них родимых... А вот как?
Re: Скрипты html-документа и событие DocumentComplete
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 30.11.07 19:06
Оценка: 2 (1) +1
Здравствуйте, pavelsua, Вы писали:

P>Далее, текущий документ заменяется на вновь созданный,


Вот она, ошибка Не надо просто вот так брать HTML-текст документа, чего-то там с ним делать и потом назначать его документу. Косяки гарантированы практически 100%, за исключением совсем уж вырожденных случаев.

Решение: использовать DOM, т.е. искать нужный элемент в дереве и заменять его innerHTML, как вариант. Ну или вставлять новые элементы юзая appendChild. Да, это требует большее количество кода, но работает надежней.
<< Если гора идет к тебе, спасайся: это обвал. >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.