Текущий архив: 2005.08.28;
Скачать: CL | DM;
Вниз
Как загрузить HTML-код в определенный фрейм страницы браузера? Найти похожие ветки
← →
ТехникПТО © (2005-03-12 18:33) [0]Есть переменная s в которой содержиться полный хтмл код страницы... его нужно загрузить в определенный фрейм страницы...КАК это сделать?
← →
SergP © (2005-03-12 19:41) [1]Не пробовал никогда так делать, но думаю что можно либо через navigate используя протокол about.
procedure Navigate(const URL: WideString; var Flags: OleVariant; var TargetFrameName: OleVariant);
Только конечно если длина переменной не очень большая, до 1,5-2 Кб
Либо каким-нить другим методом, типа:
procedure TForm1.WBLoad(HTMLstring:string);
var
v: Variant;
HTMLDocument: IHTMLDocument2;
begin
HTMLDocument := WB.Document as IHTMLDocument2;
v := VarArrayCreate([0, 0], varVariant);
v[0] := HTMLString;
HTMLDocument.Write(PSafeArray(TVarData(v).VArray));
HTMLDocument.Close;
end;
Только вместо этого (WB.Document) указать на документ конкретного фрейма.
не знаю будет ли работать, но мне лень щас с фреймами возиться.
← →
ТехникПТО © (2005-03-12 21:00) [2]хм... а URL??? какой?? :(
← →
SergP © (2005-03-12 21:23) [3]
> [2] ТехникПТО © (12.03.05 21:00)
> хм... а URL??? какой?? :(
"about:"+s
← →
SergP © (2005-03-12 21:24) [4]Только если s у тебя большая то браузер может ее "обрезать"
← →
ТехникПТО © (2005-03-12 21:25) [5]
> "about:"+s
так то s это переменная в которой содержиться HTML-код страницы!!!
← →
SergP © (2005-03-12 21:27) [6]
> так то s это переменная в которой содержиться HTML-код страницы!!!
Ну правильно.
var
URL:string;
...
begin
...
URL:="about:"+s;
Webbrowser.Navigate(URL, ... и остальные параметры...
← →
SergP © (2005-03-12 21:29) [7]Открой ИЕ и введи в строку с УРЛОМ вот это:
about:<html>Я%20Вася%20Пупкин</html>
и поймешь....
← →
ТехникПТО © (2005-03-12 21:38) [8][Error] Unit1.pas(525): There is no overloaded version of "Navigate" that can be called with these arguments
Url1:="about:"+s;
Form1.EmbeddedWB1.Navigate(URL,1,Form1.EmbeddedWB1.OleObject.Document.frames.item(3).Document);
← →
ТехникПТО © (2005-03-12 21:39) [9]выйдете в асю если есть возможность
← →
SergP © (2005-03-12 21:40) [10]Щас попытаюсь. 135788150
← →
Aleksvz (2005-03-22 12:38) [11]Народ помогите пожалуйста
Все время пользовался именно таким (приведенным) методом, для загрузки html страниц целиком в WebBrowser. И никогда не было никаких проблем. Но на некоторых компах строкаHTMLDocument.Write(PSafeArray(TVarData(v).VArray));
вызывает ошибку обращения к памяти:
"Access Violation at adress XXXXXXXX im module Module_Name.exe Read of adress FFFFFFFF". В описании ошибки говориться, что она возникает при попытке обращения к закрытой области памяти, использование объекта, которому не выделена память, либо осуществляется попытка оичстить память, которая была выделена в другом модуле. Но при чем здесь эта ошибка (именно в этой строке) не могу понять. В чем я не прав и как исправить эту проблему. Заранее спасибо
← →
SherZod (2005-05-15 22:10) [12]Сначало инициализируем пустой документ в TWebBrowser
procedure TForm1.FormCreate(Sender: TObject);
begin
// Инициализируем пустой документ в TWebBrowser
WebBrowser1.Navigate("about:blank");
end;
А патом заружаем строку в TWebBrowser
procedure TForm1.Button1Click(Sender: TObject);
var
Document: IHTMLDocument2;
V: OleVariant;
begin
// Этот метод переписывает в TWebBrowser HTML-
// документ из TMemo
Document := WebBrowser1.Document as IHtmlDocument2;
V := VarArrayCreate([0, 0], varVariant);
V[0] := Memo1.Text;
Document.Write(PSafeArray(TVarData(v).VArray));
Document.Close;
end;
← →
programania © (2005-05-15 22:41) [13]>его нужно загрузить в определенный фрейм страницы...
фреймы хранятся в отдельных файлах
туда и записать этот текст
и загрузить повторно основную страницу navigate.
А если ссылка на фрейм ведет в интернет,
изменить ее на локальный файл в тексте загруженом в WB
как описано выше.
Страницы: 1 вся ветка
Текущий архив: 2005.08.28;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.027 c