Главная страница
    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.45 MB
Время: 0.006 c
14-89019
drpass
2002-05-26 22:32
2002.06.27
3:2 Динамо-Киев отдыхает!


1-88932
angelcom
2002-06-15 11:00
2002.06.27
Господа!!! Помогите новичку, плз...


1-88954
Nick 007
2002-06-16 00:18
2002.06.27
Adobe PDF


8-88963
Pete
2002-02-18 15:34
2002.06.27
Помогите реализовать...


3-88707
Timur_2002
2002-06-03 11:56
2002.06.27
Вопрос по InterBase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский