Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

Как загрузить 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.321 c
3-1121836820
Ольга
2005-07-20 09:20
2005.08.28
Проектирование БД. Учет ретроспективы.


3-1121764781
Андрей Жук
2005-07-19 13:19
2005.08.28
Баг в DCL Firebird 1.5.2


1-1123428673
Eraser
2005-08-07 19:31
2005.08.28
Ошибка в коде. Порча данных


1-1123474947
Ldt
2005-08-08 08:22
2005.08.28
Из GSM кодировки в ASCII


1-1123483369
_zx
2005-08-08 10:42
2005.08.28
испльзование компонентов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский