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

Вниз

Как получить TextRange конкретного фрейма в TWebBrowser?   Найти похожие ветки 

 
Good Man ©   (2002-06-17 21:29) [0]

Привет, Всем!

Получить TextRange страницы без фреймов мне удалось:

HTML_Doc := WebBrowser1.Document As IHTMLDocument2;
Window := HTML_Doc.parentWindow As IHTMLWindow2;
Body := HTML_Doc.get_body As IHTMLBodyElement;
Range := oBody.createTextRange;


Можно еще так:

var
a:IHTMLTxtRange;

a:=IHTMLDocument2(webbrowser1.Document).selection.createRange as IHTMLTxtRange;


А вот как добраться до конкретного фрейма не знаю (в моем случае "MainFrame").


 
int64 ©   (2002-06-18 00:02) [1]

Каждый фрейм это "отдельный" WebBrowser в документе как контейнере.
Вот, набросал функцию, чтобы достучаться до любого фрейма:

function GetFrame(WB: TWebbrowser; 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.Button1Click(Sender: TObject);
var W: IWebbrowser2;
begin
W:=GetFrame(WebBrowser1, "MainFrame");
if assigned(W) then
HTMLDocument(W.Document).body.innerHTML:= "<h1>Hi, World!</h1>";
end;


Дерзай.



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
3-88751
Roman_Tutov
2002-06-04 14:21
2002.06.27
тип поля в IB


1-88894
zeos
2002-06-13 20:21
2002.06.27
Неактивная кнопка в MessageDialog.


14-89023
cyborg
2002-05-18 19:07
2002.06.27
Домашние странички


1-88840
shagen
2002-06-17 14:26
2002.06.27
Курсорные форматы


1-88888
Bocman
2002-06-14 11:45
2002.06.27
Аномалия какая-то...