Главная страница
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.013 c
3-88750
niko4543
2002-06-02 13:47
2002.06.27
DBImage


1-88929
Korona
2002-06-14 20:26
2002.06.27
TForm1.Create(Screen)


1-88828
Twinc №
2002-06-16 22:26
2002.06.27
install.sh


3-88706
AAAPLE
2002-06-01 12:34
2002.06.27
Help! Как задать каталог временных файлов БД (файлы запросов)


1-88846
PTE
2002-06-17 15:27
2002.06.27
Анализатор логов Squid