Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.043 c
3-88730
Explorer
2002-06-03 15:09
2002.06.27
Процедуры в MSSQL 2000


1-88858
ec
2002-06-14 17:20
2002.06.27
Динамически создоваемые компоненты и их удаление


1-88873
Alex is Fecit
2002-06-13 20:32
2002.06.27
SpinEdit!!!


1-88799
dimonf
2002-06-16 18:11
2002.06.27
Подскажите, где можно скачать компонент Async Pro v. 3.0 и выше?


14-88997
Rocky
2002-05-23 22:48
2002.06.27
Полноценный медиапроигрыватель




   Наверх