![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Код:
Код:
// возвращает код HTML function TForm1.GetHTMLCode(WebBrowser: TWebBrowser): String; var ps: IPersistStreamInit; not13, ss: TStringStream; sa: IStream; ssUTF8, s: string; Res: Boolean; begin ps := WebBrowser.Document as IPersistStreamInit; s := ''; ss := TStringStream.Create(s); try sa := TStreamAdapter.Create(ss, soReference) as IStream; Res := Succeeded(ps.Save(sa, True)); if Res then Result := ss.DataString; finally ss.Free; end; end; // обработчик OnDocumentComplete procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin ... Memo1.Text := ''; Content := GetHTMLCode(WebBrowser1); Memo1.Text := Content; ... end; procedure TForm1.Button2Click(Sender: TObject); begin WebBrowser1.Navigate('rambler.ru'); end; procedure TForm1.Button3Click(Sender: TObject); begin WebBrowser1.Navigate('http://love.rambler.ru/partner/link.phtml?pid=482400&lid=8206'); end; если последовательно нажимать на кнопки сначала WebBrowser1.Navigate('rambler.ru');, потом WebBrowser1.Navigate('http://love.rambler.ru/partner/link.phtml?pid=482400&lid=8206'); то функция GetHTMLCode нормально возвращает HTML контент. Если кнопкой загрузить WebBrowser1.Navigate('rambler.ru');, а потом в самом WebBrowser нажать на ссылку "http://love.rambler.ru/partner/link.phtml?pid=482400&lid=8206", то возвращается переменная Content пустая, причём Res := Succeeded(ps.Save(sa, True));, Res возвращается False, должно быть True. Получается что когда один раз грузишь через Navigate, то нормально, а когда после этого в самом браузере нажимаешь ссылку Content пустой. Во вложенном файле проект. Инструменты: WinXP + Delphi 2007 |