Показать сообщение отдельно
  #7  
Старый 03.01.2012, 13:11
Pcrepair
 
Сообщения: n/a
По умолчанию

вот что получается

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
URL : string;
begin
     Memo1.Clear; // очистка МЕМО перед циклом
     Clipboard.Clear; // очистка перед циклом - на всякий случай и для наглядности (смотрим в FreeClipViewer)
     URL := Edit1.Text;
     Chromium1.Browser.MainFrame.LoadUrl(URL);
end;

procedure TForm1.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer; out Result: Boolean);
begin
  if (httpStatusCode <> 200) then Exit;
  Chromium1.Browser.MainFrame.ExecuteJavaScript('document.querySelector(":focus").blur();', '', 0); //убираем фокус с окон ввода, на некоторых сайтах это актуально
  Chromium1.Browser.MainFrame.SelectAll; //выделяем все
  Application.ProcessMessages;
  Chromium1.Browser.MainFrame.Copy; //именно так а не Frame.Copy - иначе на некоторых сайтах в буфер вначале копиркется одно, потом другое и только потом вся страница, это прямо видно в FreeClipViewer 
  Application.ProcessMessages;
  Memo1.PasteFromClipboard; //почемуто на некоторых сайтах ничего в МЕМО не копируется, тогда как в буфере все есть (FreeClipViewer все видит)

Вот тут возникает еще вопрос:
как из буфера скопировать содержимое формата CF_HTML (то, что это именно этот формат подтверждает PortableNVU (выжуальный редактор) обратно в переменную? какой бы тип перемонной не выставлял, все время идет несовпадение типов переменных? сразу скажу что Chromium1.Browser.MainFrame.Copy копирует данные только в клипборд. отсюда и необходимость вернуть их в программу причем в формате CF_HTML (с тегами, ссылками и всем прочим) для последующего парсинга. Никто не в курсе?
Ответить с цитированием