Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.11.2012, 11:13
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию Webbrowser+вкладки

Друзья, всем привет. Помогите пожалуйста разобрать 1 момент, есть что то наподобий браузера, на форме стоит pagecontrol c 30ю вкладками, на каждой вкладке стоит webbrowser. Есть некий сайт а вней кнопка, так вот при нажатий на эту кнопку страница открывается не в новой вкладке а в IE, как сделать так что бы страница открывалась в след.вкладке pagecontrol?
Ответить с цитированием
  #2  
Старый 28.11.2012, 16:58
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию

Ура! Разобрался с этой проблемой. Но тут возникла вторая. Никак не получается программно нажать на кнопку на сайте. Пожалуйста кому не сложно посмотрите, есть подозрения что проблема из за Фрейма. http://www.fips.ru/cdfi/Fips2009.dll/ после перехода нажмите на кнопку гостевой вход, затем "Патентные документы РФ (рус.)" выберите все чекбоксы, далее нажмите на ссылку поиск слева. Открывается форма, в поле автор введите к примеру "Иванов",и нажмите поиск. Открывается страница со списком ссылок, выберите любой на открывшейся странице есть кнопка "Версия для печати" вот на эту кнопку не получается никак нажать. Пробовал нажать
Код:
procedure TForm1.Button4Click(Sender: TObject);
var
j:integer;
begin
for j := 0 to WebBrowser1.OleObject.Document.all.tags('input').length - 1 do
   begin
   try
   if (WebBrowser1.OleObject.Document.all.tags('input').item(i).value='Версия для печати') then
   WebBrowser1.OleObject.Document.all.tags('input').item(i).click;
   except
end;
и так
Код:
var
a:variant;
begin
a:=Webbrowser1.Oleobject.Document.GetElementById('Версия для печати');
a.click;
end;
Ответить с цитированием
  #3  
Старый 28.11.2012, 21:35
icsander icsander вне форума
Новичок
 
Регистрация: 17.04.2011
Сообщения: 87
Репутация: 10
По умолчанию

Очуметь ! Ты, что, вкладки (30 шт.) создавал в дизайнтайме и бросал на них т_веббраузер ???
Ответить с цитированием
  #4  
Старый 28.11.2012, 21:40
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию

Да именно так=))) ну щас прицепил динанимическое создание табов=))) но вот с вызовом js в делфи для того что бы нажать кнопку никак не могу разобраться
Ответить с цитированием
  #5  
Старый 29.11.2012, 09:22
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

не уверен что тут о js речь

может как-то так:
Код:
Webbrowser1.OleObject.Document.Frames...

Код:
GetElementById('bPrint')
__________________
>woweook<
Ответить с цитированием
  #6  
Старый 29.11.2012, 19:00
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Цитата:
Сообщение от Pyro
не уверен что тут о js речь

может как-то так:
Код:
Webbrowser1.OleObject.Document.Frames...

Код:
GetElementById('bPrint')
Таким образом я уже прбовал никакого эффекта, вот js код самой кнопки
Код:
window.location = 'http://www1.fips.ru/fips_servl/fips_servlet?lockId='+values["SessionKey"]+'&hitListURL='+values["IPSKey"]+'&Index='+values["CurrentDoc"]+'&NumEnv='+values["NumEnv"];

Вот это надо как то вызвать в делфи, кое что надыбал но разобрать не могу.

Код:
uses
  MSHTML;
procedure TForm1.CallFoo(S: string; I: Integer);
  { Calls JavaScript foo() function }
var
  Doc: IHTMLDocument2;      // current HTML document
  HTMLWindow: IHTMLWindow2; // parent window of current HTML document
  JSFn: string;             // stores JavaScipt function call
begin
  // Get reference to current document
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  // Get parent window of current document
  HTMLWindow := Doc.parentWindow;
  if not Assigned(HTMLWindow) then
    Exit;
  // Run JavaScript
  try
    JSFn := Format('foo("%s",%d)', [S, I]);  // build function call
    HTMLWindow.execScript(JSFn, 'JavaScript'); // execute function
  except
    // handle exception in case JavaScript fails to run
  end;
end;
Взято отсюда
Код HTML:
http://www.delphidabbler.com/articles?article=21
Ответить с цитированием
  #7  
Старый 30.11.2012, 17:46
Аватар для borockov
borockov borockov вне форума
Начинающий
 
Регистрация: 18.08.2012
Сообщения: 125
Репутация: 10
По умолчанию =)

Поробовал решение в лоб:
Код:
procedure TForm1.Button1Click(Sender: TObject);
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).tagName = 'INPUT') and
      (ovElements.item(i).type = 'SUBMIT') and
  (ovElements.item(i).Value = 'Login') then
      ovElements.item(i).Click; 
end;
Опять "отказано в доступе"
Ответить с цитированием
  #8  
Старый 01.12.2012, 11:00
Аватар для ~TB~
~TB~ ~TB~ вне форума
Начинающий
 
Регистрация: 17.02.2006
Адрес: Казахстан
Сообщения: 172
Версия Delphi: XE
Репутация: 1500
По умолчанию

Код:
window.location = 'http://www1.fips.ru/fips_servl/fips_servlet?lockId='+values["SessionKey"]+'&hitListURL='+values["IPSKey"]+'&Index='+values["CurrentDoc"]+'&NumEnv='+values["NumEnv"];

Тебе нужно найти массив "values" и спарсить значения в момент когда они туда пишутся. Потом просто в наглую подставишь их в ссылку и все будет как надо.
__________________
00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025