Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.5 MB
Время: 0.028 c
1-1123650757
gma
2005-08-10 09:12
2005.08.28
Проблема с FastReport


4-1120806372
flying home
2005-07-08 11:06
2005.08.28
сильная задержка времени


4-1120735919
DeepProg
2005-07-07 15:31
2005.08.28
NetWkstaUserEnum


4-1121166012
ATarget
2005-07-12 15:00
2005.08.28
Работа с винтом


8-1113919174
MAXIMUM666
2005-04-19 17:59
2005.08.28
Зацикливание