Re: Помогите пожалуйста, проблема с компонентом Webbrowser
От: Ihor Osovyak Украина  
Дата: 30.05.06 19:14
Оценка:
Здравствуйте, ratttx, Вы писали:

R>ovElements:= Webbrowser.OleObject.Document.frames.item(2).Document.forms.item(0).elements;


не совсем хороший подход, хотя бы потому что в силу определенных обстоятельств на соотв. уровне может быть несколько меньше фреймов, чем Вы ожидаете, как следствие — ексепшен.. Ну и плюс проблема, упомянутая Вами далее.


R>if Document <> nil then richedit1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;


не совсем хорошо также, так как в общеи случае не обязательно должег существоапть Document.all.Item(NULL, 0) и не обязательно он имеет интерфейс IHTMLElement...


Посмотрите мою древнюю статью на Королевстве делфи в Подземелье магов, писалась давно, но в общем то немного имеет актуальность, там немного другой подход.. Кажется, там также есть пример работы с фреймами (или это только планировал писать в продолжении, если это так — стучите еще раз, брошу пример сюда)...

http://www.delphikingdom.com/asp/viewitem.asp?catalogID=366



R>end;

R>Но есть проблема, что на сайте МНОГО ФРЕЙМОВ, и мне выдается ХТМЛ код не того, что мне нужно,

подозреваю, что Вы не учитываете того, что фреймы не обязательно все на одном уровне, а могут быть вложены друг в друга (тохоже как директории на диске, а Ваш код проходит только по коревой директории (аналогия верна в первом приближении, прошу не судить строго)

а если я пробую обратиться к фрейму как описал выше, а после воспользоваться этой процедурой, то мне выкидывает ошибку примерно такую -"Я обьявил ОЛЕэлемент и пытаюсь вытащить код ЭТОГО ЭЛЕМЕНТА(Ему все равно, что этот элемент является фреймом...)" (ovElements:= Webbrowser.OleObject.Document.frames.item(2).Document — эта фишка не работает... (((((((((((


ну об чем и речь, я уже об этом говорил..

удачи..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.