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

Вниз

Сохранить нужный Фрейм ?   Найти похожие ветки 

 
LiSi   (2003-07-08 12:28) [0]

Как это сделать !?
Var
HTML_Doc: IHTMLDocument2;
Window: IHTMLWindow2;
oRange1: variant;
name_frame: OleVariant;
begin
Memo1.Lines.Clear;
name_frame := "main";
HTML_Doc := WebBrowser1.Document as IHtmlDocument2;
Window := HTML_Doc.parentWindow As IHTMLWindow2;
( Window.frames.item(name_frame) Как это сделать !?
Var
HTML_Doc: IHTMLDocument2;
Window: IHTMLWindow2;
oRange1: variant;
name_frame: OleVariant;
begin
Memo1.Lines.Clear;
name_frame := "main";
HTML_Doc := WebBrowser1.Document as IHtmlDocument2;
Window := HTML_Doc.parentWindow As IHTMLWindow2;
Memo1.Text := (Window.frames.item(name_frame).Document.all.Item(NULL, 0)).OuterHTML;
end;

если сделать так .. то возникает ошибка "Нет доступа" я так думаю это мотому что сохранить нужно страницу нереданую по HTTPS (SSL)

Если делать так

var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
...
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
PersistFile.Save(StringToOleStr("test.htm"), True)
end;

то сохраняется только главнй фрейм ... :( ...как получить доступ к нужному !?


 
Ihor Osov'yak   (2003-07-08 13:22) [1]

"Нет доступа" - ибо содержимое фрейма из другого домена. Ограничение с соображений безопасности..

Один из вариантов выхода - ловить интервейс на соотв. фрейм в OnDocumentComplete (это событие возникает для каждого фрейма)


 
LiSi   (2003-07-09 00:44) [2]

Извините может это уже ламеризм ... но не могу я понять как сохранить текущий именно фрейм (допустим я повещал на событие OnDocumentComplete эту процедуру)

если так

var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
...
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument.frames as IPersistFile;
PersistFile.Save(StringToOleStr("test.htm"), True)
end;

говорит "Интерфейс не поддерживается" ! если как в прошлый раз опять же сохраняет главный фрейм ! :(

пиво с меня как встретимся - очень нуно ! :)))


 
Ihor Osov'yak   (2003-07-09 13:52) [3]


> PersistFile := HTMLDocument.frames as IPersistFile;

Здесь? Естественно.. А кто сказал, что должно там поддерживаться?

В OnDocumentComplete от pDisp запрашивай примерно так:

var iWB:IWebBrowser2;
==

pDisp.QueryInterface(IWebBrowser2,iWB);
if not assigned(iWB) then exit;
// здесь убеждаешся, что это именно тот фрейм, что нужно.. По каким критериям - это тебе виднее, например по iWB.LocationURL, iWB.Name, ets
if NE_MOY then exit;

//ну а здесь уже
iWB.Document.QueryInterface(IPersistFile,PersistFile);
if not assigned(PersistFile) then exit;
PersistFile.Save(...








 
LiSi   (2003-07-10 00:42) [4]

Сделал как ты сказал !

pDisp.QueryInterface(IWebBrowser2,iWB);
if not assigned(iWB) then exit;

// ну тут определяю нужный-ли фрейм

iWB.Document.QueryInterface(IPersistFile,PersistFile);
if not assigned(PersistFile) then exit;
PersistFile.Save(StringToOleStr("test.htm"), True);
memo1.Lines.LoadFromFile("test.htm");

ну естественно нахожу момент когда грузится мой фрейм через iWB.LocationURL но :( на выделеной сточке он выходит из процедуры и ни чего не сохраняется ! короче я возврощаюсь к самому началу сохраняется только главный фрейм :(

может я что то не так сделал !? заране спасибо !


 
LiSi   (2003-07-15 16:53) [5]

Проблема всё еще не решилась !

Любы друзи памажите кто знает ! :) оч надо 2 пива ... радушный приём ....


 
Ihor Osov'yak   (2003-07-16 00:31) [6]

Странно, должно работать... А в фреме точно html, а не pdf какой?

Ps - дай точный урлик, и имя фрейма - утром, если настроение будет хорошее - посмотрю..


 
LiSi   (2003-07-16 17:38) [7]

буду весьма признателен !
Пиво вышлю почтой !
кстати ты где живешь !?

https://passwort.t-mobile.at/


 
sergey2   (2003-07-16 19:46) [8]

А если этот фрейм сначала в string "засунуть", а потом уже сохранять? Правда не знаю как оно себя поведет с HTTPS...


 
Ihor Osov'yak   (2003-07-16 19:59) [9]

2 LiSi (16.07.03 17:38)

Да никаких проблем не возникло (D5, W2K+SP2, IE6+SP1 - но это все несущественно..):

unit fMain;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, SHDocVw, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
edURL: TEdit;
btGO: TButton;
WB: TWebBrowser;
procedure btGOClick(Sender: TObject);
procedure WBDocumentComplete(Sender: TObject; const pDisp: IDispatch;
var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

uses activeX;

procedure TForm1.btGOClick(Sender: TObject);
begin //
WB.Navigate(edUrl.Text);
end;

var idxFrame:integer;

procedure TForm1.WBDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var iWB:IWebBrowser2;
PersistFile:IPersistFile;
( IWebBrowser2,iWB)
2 LiSi (16.07.03 17:38)

Да никаких проблем не возникло (D5, W2K+SP2, IE6+SP1 - но это все несущественно..):

unit fMain;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OleCtrls, SHDocVw, StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
edURL: TEdit;
btGO: TButton;
WB: TWebBrowser;
procedure btGOClick(Sender: TObject);
procedure WBDocumentComplete(Sender: TObject; const pDisp: IDispatch;
var URL: OleVariant);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

uses activeX;

procedure TForm1.btGOClick(Sender: TObject);
begin //
WB.Navigate(edUrl.Text);
end;

var idxFrame:integer;

procedure TForm1.WBDocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
var iWB:IWebBrowser2;
PersistFile:IPersistFile;
fText:textfile;
begin //



pDisp.QueryInterface(IWebBrowser2,iWB);
if not assigned(iWB) then exit;
//


 
LiSi   (2003-07-19 02:06) [10]

>От Минска несколько южнее будет. Украина. Западная. Маленький, >симпатичный областной центр. Тернополь.

говори почтовый индекс .. и ваще координаты буду высылать пиво
(только как думаешь не испортится ли оно ?)
кстати я из Витебска (Белорусия ) ... ты в гости не собираешся ?

огромное спасибо за помощь ... и в правду всё работает это у меня просто какие то глюки ... :)






Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
1-58760
Андрей Сенченко
2003-09-08 14:37
2003.09.18
Вдруг кто уже сталкивался


3-58592
nikkkk
2003-08-26 16:27
2003.09.18
Как создать индекс на локальной машине через TQuery ???


11-58606
RWolf
2003-01-13 11:41
2003.09.18
KOLSocket, kolTCPSocket - не могу установить


3-58569
AlexBon
2003-08-27 12:39
2003.09.18
IBQuery - как добавить поля


1-58751
TGrey
2003-09-06 18:59
2003.09.18
Status Bar





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