Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.18;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
1-58616
wildcow
2003-09-05 15:56
2003.09.18
PopUpMenu в RunTime


14-58899
Е-Моё имя
2003-08-29 00:48
2003.09.18
День на форуме пропал не зря ;-))


1-58658
Dimich1978
2003-09-05 08:31
2003.09.18
Помогите считать из файла данные.


4-58975
Andrew_p
2003-07-16 21:03
2003.09.18
Перехват сообщения Windows прокручивания колесика мыши


1-58771
muzik
2003-09-08 13:19
2003.09.18
FORM - как компонент?