Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> программно нажать на ссылку в TWebbrovser, как? 
:(
    Опции темы
Teran
  Дата 29.11.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

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



как можно программно нажать на ссылу в TWebbrovser
ссылка представлена в таком виде:
Код

<input type="image" src="http://forum.vingrad.ru/style_images/2/menu.gif"  width="201" align="absmiddle" value="Continue" height="22" border="0" /><br />

этот код почемуто ее не находит:
Код

     for k := 0 to (WebBrowser.OleObject.Document.forms.Length - 1) do
      begin
       ovElements := WebBrowser.OleObject.Document.forms.item(k).elements;
       for j := 0 to (ovElements.Length - 1) do
         begin
//          MessageBox(0,PChar(string(ovElements.item(j).tagName)+' : '+string(ovElements.item(j).Name)+' : '+string(ovElements.item(j).type)+' : '+string(ovElements.item(j).Value)),'',0);
          if (ovElements.item(j).tagName = 'INPUT') and
             (ovElements.item(j).type = 'image') and
             (ovElements.item(j).Value = 'Continue')  then begin ovElements.item(j).Click;end; //сюда не заходит
         end;
      end;



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
December
Дата 29.11.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

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



это не ссылка, это простой инпут, который позволяет отсабмиттить форму.
form.submit()


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Teran
Дата 29.11.2006, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 590
Регистрация: 9.9.2005
Где: Украина, Запорожь е

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



Цитата(December @  29.11.2006,  22:48 Найти цитируемый пост)
form.submit() 

расскажи пожалуйста если у меня на форме два таких рисунка(кот выполняют разные действия) как мне нажать на один из них?
Код

<input type="image" src="http://images/btn-atc.gif"  width="160" alt="Add to Shopping Cart" name="submit.add-to-cart" height="27" border="0" />

и
Код

<input type="image" src="http://images/btn-1click.gif"  width="160" name="submit.one-click-order" height="27" border="0" />

если нужно нажать на вторую что мне прописывать в скобках:
Код

WebBrowser.OleObject.Document.forms.item(k).submit( )



--------------------
Ни цего не понимаю
PM MAIL ICQ   Вверх
December
Дата 30.11.2006, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

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



проанализируй пост-данные, которые идут на сервер
тема про input type="image" уже была на форуме, поищи
ИМХО надо либо как-то имитировать клик в определённых координатах, либо модифицировать post data


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Matematik
Дата 2.12.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

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



У IHTMLElement есть метод Click
Делается примерно так

Код

WBClick('input', 'value', 'Continue'); // ***

// нажатие на компанент
function WBClick(const aTagName,aTagParam,aParamValue:WideString):Boolean;
var
  j,k         : Integer;
  IDoc        : IHTMLDocument2;
  ITag        : IHTMLElement;
  ICollection : IHTMLElementCollection;
  p           : OleVariant;
begin
  Result := False;
  IDoc   := WB.GetDocument; // WB:TEmbeddedWB
  if IDoc.all.tags(aTagName).QueryInterface(IHTMLElementCollection, ICollection)=S_OK then
  begin
    k := ICollection.length - 1;
    for j:=0 to k do
    begin
      if ICollection.item(j,0).QueryInterface(IHTMLElement, ITag)=S_OK then
      begin
        p := ITag.getAttribute(aTagParam, 0 or 2);
        if VarType(p)=varOleStr then
        begin
          if p=aParamValue then
          begin
            ITag.click;
            Application.ProcessMessages;
            Result := True;
            Break;
          end
        end
      end
    end
  end
end;


PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

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


 




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


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

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