Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > WebBrowser


Автор: D1s0rd3r 20.3.2008, 23:49
Народ подскажите такую тему....
Есть форма но кнопка отправить за ней закрыта.. ЯваСкрипт идить его за ногу...
Когда заполняеш поля а я заполняю так:

Код

function FillForm(WebBrowser: TWebBrowser; FieldName: string; Value: string): Boolean;
  var
    i, j: Integer;
    FormItem: Variant;
  begin
    Result := False;
  if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
    begin
      Exit;
    end;
  for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
    begin
      FormItem := WebBrowser.OleObject.Document.forms.Item(I);
      for j := 0 to FormItem.Length - 1 do
      begin
        try
        if FormItem.Item(j).Name = FieldName then
          begin
            FormItem.Item(j).Value := Value;
            Result := True;
          end;
        except
          Exit;
        end;
      end;
    end;
  end;


То кнопка серавно остается гашеная... когда тупо мышкой кликаеш по полю, и появляется курсор то кнопка становится активной... как блин кодом сделать кнопку активной...   smile 

Автор: SneG0K 21.3.2008, 01:06
А зачем все так усложнять? Формируй пакет и отсылай его! ИМХО это легче намного, чем мучать JavaScript идить его за ногу smile 

Автор: D1s0rd3r 21.3.2008, 07:29
Первоначально было решение собрать пакет и отправить.. но Ajax =) Поэтоми пришлось просто заполнять форму и все... Не могу сообразить как эту JavaScript идить его за ногу обступить. Вчера пробывал:

Код

var
  ovElements: OleVariant;
  i: Integer;
begin
  ovElements := WebBrowser1.OleObject.Document.forms.item(0).elements;
  for i := 0 to (ovElements.Length - 1) do
    if (ovElements.item(i).Name = 'log') and
      (ovElements.item(i).type = 'text') then
      ovElements.item(i).Click;
end;


Но серавно кнопка была мертвая.... Получается что клик на поле не сработал..  smile 

Автор: DmitryHT 21.3.2008, 10:38
попробуй также поснифить с отключеныым яваскриптом на странице

Автор: D1s0rd3r 21.3.2008, 12:35
Ага... с ЯваСкрипт идить его за ногу... когда отключаеш кнопка всегда включена... =)
Но дело в том что картинка теперь не грузится... =) с капчей... там же Ajax на картинке и ява...

А картинка грузилась когда заполняеш поле с логином.. как поле с логином пустое то капчи нет.. как логин написал капчя появилась... 

Надо именно как то передать клик на это еб** поле... smile 

Автор: MetalFan 21.3.2008, 12:37
просто посмотреть, что шлет браузер. и слать с пом например idHTTP тоже самое. и класть на ajax, идить его за ногу

Автор: D1s0rd3r 21.3.2008, 13:11
Я четко знаю, что форма шлет (данные). Собрал уже свою форму на винте.. но когда посылаю... данные вот так вот: 

Код

procedure TForm1.Button1Click(Sender: TObject);
var Data: TIdMultiPartFormDataStream;
begin
Data:=TIdMultiPartFormDataStream.Create;
try
Data.AddFormField('login','lala');
Data.AddFormField('passwd','lala');
idHTTP.Post('http://xxx.ru/',Data));
finally
Data.Free;
end;
end;


Но не чего не происходит... =) ответа 0. Поэтому я принял решение делать через автозаполнение...

Автор: MetalFan 21.3.2008, 13:30
Цитата(D1s0rd3r @  21.3.2008,  13:11 Найти цитируемый пост)
Но не чего не происходит... =) ответа 0

чтото я не вижу, что гдето чтото должно приходить)

Автор: _lleopard_ 10.4.2008, 08:57
Вопрос по WebBrowse, как убрать загрузку картинок??
EmbeddedWB_D2005 мне помог!

Автор: MetalFan 10.4.2008, 10:49
Цитата(_lleopard_ @  10.4.2008,  08:57 Найти цитируемый пост)
EmbeddedWB_D2005 мне помог!

ну тогда может господь поможет? аминь)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)