Форум: "Сети";
Текущий архив: 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.008 c