Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];
ВнизCtrl+A и Ctrl+C в компоненте TWebBrowser Найти похожие ветки
← →
Pcrepair © (2011-10-08 21:45) [0]Добрый день
есть код простейшего браузера
procedure TForm1.Button1Click(Sender: TObject);
var
URL, Flags, TargetFrameName, PostData, Headers: Olevariant;
begin
URL := Edit1.Text;
Flags := 0;
TargetFrameName := 0;
Postdata := 0;
Headers := 0;
EmptyParam;
WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
end;
initialization
// prevent floating point errors
Set8087CW($133F);
end.
программа позволяет загрузить и отобразить ХТМЛ-страницу
Вопрос:
Как организовать выделение и копирование содержимого ХТМЛ-страницы в буфер обмена по событию "загрузка закончена"
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
????????????????????????
end;
Нет ли у кого похожего кода, чтоб на пустом месте не гадать?
Заранее спасибо
← →
sniknik © (2011-10-08 22:14) [1]гадания ни чему, а вот изучить структуру обьекта/документа лишним не будет. раз начал работать с этим.
чтобы на каждый "чих" вопросы не спрашивать.
заранее пожалуйста.
← →
Омлет © (2011-10-08 22:30) [2]
function GetWB_HTML(const WebBrowser: TWebBrowser): string;
var
ResultStream: TStringStream;
Adapter: IStream;
WBStream: IPersistStreamInit;
begin
Result := "";
if assigned(WebBrowser.Document) then
begin
ResultStream := TStringStream.Create("");
try
WBStream := WebBrowser.Document as IPersistStreamInit;
Adapter := TStreamAdapter.Create(ResultStream, soReference);
if Succeeded(WBStream.Save(Adapter, true)) then
Result := ResultStream.DataString;
finally
ResultStream.Free;
end;
end;
end;
+ Clipboard.SetTextBuf
← →
Loginov Dmitry © (2011-10-08 22:31) [3]в помощь:
http://matrix.kladovka.net.ru/index.php?page=htmleditor
← →
sniknik © (2011-10-08 22:35) [4]блин какие все сложные...
вот в "помощь" http://www.cryer.co.uk/brian/delphi/twebbrowser/twebbrowser_oleobject.htm#OleObject.Document.documentElement.innerHTML
а вот что из этого получаетсяShowMessage(Variant(WebBrowser1.Document as IHTMLDocument2).documentElement.innerHTML);
← →
Омлет © (2011-10-08 22:52) [5]А, я, возможно, неверно понял, и автору надо не html, а просто отображаемый текст без разметки. Тогда см. [4] + innerText.
← →
Pcrepair © (2011-10-09 10:11) [6]Всем спасибо, даже sniknik
мне нужна имитация действий пользователя Ctrl+A и Ctrl+C, причем именно в том случае когда страница с TWebBrowser не в фокусе (у меня там три страницы - страница с TWebBrowser, страница с вводом УРЛ и кнопкой "грузить", страница с Тмемо, куда нужно потом вводить скопированный текст со сслылками
конечно, в теории, можно было бы просто загрузить код ХТМЛ-страницы через компоненту ИНДИ и удалить все лишние теги, если бы не ЖАБА.
поэтому используется TWebBrowser со встроенным JavaScript, поскольку нынче ЖАБА напихана практически повсюду
← →
sniknik © (2011-10-09 10:34) [7]> А, я, возможно, неверно понял
судя по последнему наоборот верно... где телепатор брал? ;)
> если бы не ЖАБА.
а если Ajax или "длинные" обработке на яваскрипте? WebBrowser1DownloadComplete будет далеко не Complete с точки зрения готовности страницы, а не ее скачивания.
← →
Pcrepair © (2011-10-09 11:00) [8]ну пусть хоть как то работает, пока
совершенства нет
← →
Loginov Dmitry © (2011-10-09 13:47) [9]
> WebBrowser1DownloadComplete будет далеко не Complete с точки
> зрения готовности страницы, а не ее скачивания.
Он и для самой простой страницы не комплит. Новые версии IE после этого события еще порядка четверти секунды чем-то своим занимаются, в связи с этим не все операции проходят корректно (возможны сбои).
← →
Pcrepair © (2011-10-09 14:00) [10]
> Омлет © (08.10.11 22:30) [2]
так эта функция она что делает?
вообще нужно:
- после окончания загрузки кода ХТМЛ-страницы
- после отработки JavaScript
- после отображения страницы в окне браузера (раз отображено - значит все действия со страницей закончены)
скопировать текст страницы в буфер или ПЕРЕМ(что лучше)
- с сохранением всех УРЛ (ссылок)
- с сохранением структуры текста (таблицы)
- без сохранения картинок
- удалить все ненужные теги и их содержимое (стили всякие дИВы и прчую мутотень, которой так много в нынешних сайтах)
отобразить в МЕМО или другом типе окна (только для визуального контроля) страницу в уже упрощенном виде
никто ничего похожего не делал?
← →
Palladin © (2011-10-09 19:05) [11]мясо все браузер пишет ) минимум затрат максимум огазма )
← →
DiamondShark © (2011-10-09 20:43) [12]
> мне нужна имитация действий пользователя Ctrl+A и Ctrl+C,
Ctrl+A:
http://msdn.microsoft.com/en-us/library/aa770025
Ctrl+C:
http://msdn.microsoft.com/en-us/library/aa769872
Любите хелп -- источник знаний.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c