Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Браузер на TChromium. Особенности работы, Браузер на TChromium 
:(
    Опции темы
Pcrepair
Дата 30.12.2011, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Добрый день и с Новым годом
Есть код с применением компонета TChromium. Браузер загружает страницу, после загрузки делает КОНТР+А и КОНТР+С

Код

procedure TForm1.Button1Click(Sender: TObject);
var
URL : string;
begin
     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
  // вот тут не хватает кода для установки фокуса
  frame.SelectAll; //выделить все
  frame.Copy;      //копировать выделенное в буфер
end;


На сайтах без окон ввода данных (forums.kuban.ru) все работает нормально
На сайтах типа YA.RU фокус автоматически устанвливается на окне ввода, соответсвенно ничего не выделяется и не копируется. В TWebBrowser эта задача решается следующим кодом
Код

if WebBrowser1.Document <> nil then
  (Webbrowser1.Document as IHTMLDocument2).ParentWindow.Focus; //вот тут фокус на все окно, проверено.работает

ВОПРОСЫ:
1. Где есть справочники с описанием методов TChromium?
2. кто знает способ (код) для установки фокуса на загруженную страницу
Всем ответившим по существу вопросов спасибо
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Pcrepair
Дата 3.1.2012, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



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

Код

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 (с тегами, ссылками и всем прочим) для последующего парсинга. Никто не в курсе? 
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0606 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.