![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Друзья, всем привет. Помогите пожалуйста разобрать 1 момент, есть что то наподобий браузера, на форме стоит pagecontrol c 30ю вкладками, на каждой вкладке стоит webbrowser. Есть некий сайт а вней кнопка, так вот при нажатий на эту кнопку страница открывается не в новой вкладке а в IE, как сделать так что бы страница открывалась в след.вкладке pagecontrol?
|
#2
|
||||
|
||||
![]() Ура! Разобрался с этой проблемой. Но тут возникла вторая. Никак не получается программно нажать на кнопку на сайте. Пожалуйста кому не сложно посмотрите, есть подозрения что проблема из за Фрейма. 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
|
|||
|
|||
![]() Очуметь ! Ты, что, вкладки (30 шт.) создавал в дизайнтайме и бросал на них т_веббраузер ???
![]() |
#4
|
||||
|
||||
![]() Да именно так=))) ну щас прицепил динанимическое создание табов=))) но вот с вызовом js в делфи для того что бы нажать кнопку никак не могу разобраться
|
#5
|
|||
|
|||
![]() не уверен что тут о js речь
может как-то так: Код:
Webbrowser1.OleObject.Document.Frames... Код:
GetElementById('bPrint') >woweook< |
#6
|
||||
|
||||
![]() Цитата:
Код:
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:
|
#7
|
||||
|
||||
![]() Поробовал решение в лоб:
Код:
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
|
||||
|
||||
![]() Код:
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 |