![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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') |
|
#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" и спарсить значения в момент когда они туда пишутся. Потом просто в наглую подставишь их в ссылку и все будет как надо. |