Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

TWebBrowser   Найти похожие ветки 

 
Vilux   (2002-07-09 01:17) [0]

Имеется TWebBrowser и страничка в нем с несколькими фреймами, так вот вопрос. Как получить доступ к html-коду каждого фрейма?


 
int64 ©   (2002-07-09 04:22) [1]

Документ браузера это OleContainer, на котором могут располагаться другие браузеры (фреймы).
Слудующий пример показывает, как достучаться до фреймов.

Функция GetFrame ищет фрейм с именем FrameName.

procedure TForm1.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate("c:\MultiFrames.htm");
end;

function GetFrame(WB: IWebbrowser2; FrameName: string): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
TempUnk: IUnknown;
Fetched: PLongint;
FrameNo: integer;
Coll: HTMLElementCollection;
begin
With WB do
begin
while ReadyState <> READYSTATE_COMPLETE do
Forms.Application.ProcessMessages;
if Assigned(document) then
begin
Coll:=HTMLElementCollection(HTMLDocument(Document).All.Tags("FRAME"));
for FrameNo:=0 to Coll.length-1 do
if HTMLFrameElement(Coll.item(FrameNo,varEmpty)).name=FrameName then break;
Fetched := nil;
OleContainer := Document as IOleContainer;
OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, Enum);
Enum.Skip(FrameNo);
Enum.Next(1, TempUnk, Fetched);
Result := TempUnk as IWebbrowser2;
end else Result := nil;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var W: IWebbrowser2;
begin
W:=GetFrame(WebBrowser1.DefaultInterface, "destframe");
if assigned(W) then
HTMLDocument(W.Document).body.innerHTML:= "<h1>Hi, World!</h1>";
end;


Разумеется, следует учитывать, что фреймы бывают и вложенными.

Дерзай.



Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.009 c
1-58108
Question
2002-07-08 18:13
2002.07.18
screen.Datamodulecount


7-58356
CORSAiR
2002-04-24 11:37
2002.07.18
Серийный номер микросхемы BIOS..


6-58242
sany
2002-03-04 19:04
2002.07.18
Как сделать чтобы с сервера посылался автоматически ip клиенту.


1-58221
^Sanya
2002-07-07 02:36
2002.07.18
Мастера! Дайте пожалуйста совет!


3-57948
Teas
2002-06-25 23:27
2002.07.18
Помогите пожалуйста начинающему