HTMLDocument.Body.InnerHTML stack overflow

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

HTMLDocument.Body.InnerHTML stack overflow

Сообщение djalex777 » 13.01.2010 (Ср) 17:09

В системе установлен Internet Explorer 8
Для загрузки содержимого HTML-страницы использую
Код: Выделить всё
...
set doc = new HTMLDocument
doc.body.innerHTML = html_source
...

где html_source HTML-код страницы.
Получаю сообщение от Internet Explorer - "Stack overflow at line 0".
Правильно ли я понимаю, что при использовании свойства innerHTML скрипты, содержащиеся в HTML, не выолняются? Если это так, значит ошибка не в скриптах.
Обнаружил что на некоторых сайтах в html-коде много элементов с заданными свойствами OnMouseOver, OnMouseMove и т.д. И именно на них появляется такая ошибка. Причем при открытии страницы в броузере ошибка не возникает.

Пример сайта:
http://www.millionmenu.ru/

Вопрос: можно ли как-нибудь избежать появления этой ошибки?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: HTMLDocument.Body.InnerHTML stack overflow

Сообщение Antonariy » 13.01.2010 (Ср) 17:26

При использовании innerHTML возможны всяческие сюрпризы, поэтому использовать его подобным образом стоит только на небольших участках html-кода.
Лучший способ понять что-то самому — объяснить это другому.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: HTMLDocument.Body.InnerHTML stack overflow

Сообщение djalex777 » 13.01.2010 (Ср) 17:34

А что посоветуете использовать?
При document.write возникает такая же ошибка плюс исполняются скрипты, а это уже для меня не приемлимо.

HTMLDocument использую для парсинга HTML-кода.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: HTMLDocument.Body.InnerHTML stack overflow

Сообщение Antonariy » 13.01.2010 (Ср) 18:11

createDocumentFromUrl
Лучший способ понять что-то самому — объяснить это другому.

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: HTMLDocument.Body.InnerHTML stack overflow

Сообщение djalex777 » 13.01.2010 (Ср) 19:49

У меня загрузка страниц реализована и встроенная загрузка не подходит. Правда можно создавать временный файл с содержимым страницы и загружать его через "file://"... Но. Попробовал и то и другое, всё равно таже ошибка. И на приведенном в моём примере url она также возникает. Сдается мне, что это баг ...

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: HTMLDocument.Body.InnerHTML stack overflow

Сообщение djalex777 » 13.01.2010 (Ср) 22:12

В общем отлаживал, отлаживал и обнаружил следующее - данная ошибка появляется для HTML-кода с элементами, у которых задан обработчик события OnError. Соответственно на данный момент решил проблему чисткой HTML-кода от OnError перед использованием MSHTML


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 49

    TopList