![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно нажать на кнопки в WebBrowser"
мамон © (2011-12-05 10:50:00)Кнопки 1,2,3 это вкладки страниц
При наведении на них курсором в место адресса высвечивается:
javascript:__doPostBack('_ctl0$ContentPH$GoodsDG$_ctl14$_ctl1','')
В исходном коде нет type и name кнопок
Сергей М. (2011-12-05 15:11:00) [1]
> мамон (05.12.11 15:07) [16]
А в [10] я сам с собой, по-твоему, разговаривал ?)
мамон (2011-12-05 15:07:00) [2]
> Сергей М. © (05.12.11 14:31) [15]
Ух ты! я же незнал что так можно спасибо ограмное!
Сергей М. (2011-12-05 14:31:00) [3]
> я просто незнал как вызвать функцию
А и знать не надо)
> Ура нашел!
А лежало прямо перед носом)
procedure TfrmMain.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate(' http://www.goodsmatrix.ru/GroupsDescription.aspx?g=1');
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
webbrowser1.Navigate('javascript:__doPostBack("_ctl0$ContentPH$GoodsDG$_ctl14$_c tl1","")');
end;
мамон (2011-12-05 14:21:00) [4]
> Сергей М. © (05.12.11 14:06) [12]
Это мне и самому было понятно. я просто незнал как вызвать функцию
мамон (2011-12-05 14:20:00) [5]Ура нашел!
(WebBrowser1.ControlInterface.Document as IHTMLDocument2 as IHTMLDocument2).parentWindow.execScript(
'__doPostBack(''_ctl0$ContentPH$GoodsDG$_ctl14$_ctl X'','''')', 'javascript');
X - номер страницы начинается с нулевой
Сергей М. (2011-12-05 14:06:00) [6]> адресс один и тодже
Трудно наверно быть бестолковым)
Вот URL 2-й страницы
javascript:__doPostBack('_ctl0$ContentPH$GoodsDG$_ctl14$_ctl 1','')
а вот 3-й
javascript:__doPostBack('_ctl0$ContentPH$GoodsDG$_ctl14$_ctl 2','')
Найди отличия)
мамон (2011-12-05 13:55:00) [7]
> А чем принципиально "адресс" отличается от того что "высвечивается"
> ?
Отличается
Внизу есть номера вкладок кликаешь по ним адресс один и тодже а страницы разны
http://www.goodsmatrix.ru/GroupsDescription.aspx?g=1
Сергей М. (2011-12-05 13:49:00) [8]> в место адресса высвечивается:
> javascript:__doPostBack('_ctl0$ContentPH$GoodsDG$_ctl14$_ctl1','')
А чем принципиально "адресс" отличается от того что "высвечивается" ?
Ничем. И то и другое есть URL. А для навигации по указанному URL у компонента TWebRowser имеются методы Navigate и Navigate2, которые тебе наверняка знакомы, иначе бы ты не смог загрузить станицу.
мамон (2011-12-05 13:34:00) [9]
> Еще проще вызывать __doPostBack напрямую и не заморачиваться.
Акак?
sniknik (2011-12-05 11:36:00) [10]> Еще проще вызывать __doPostBack напрямую и не заморачиваться.
если только ему внутри функции this не нужен, тогда не проще, а тоже самое, элемент определять.
Сергей М. (2011-12-05 11:26:00) [11]
> Эта строка к "кнопке", в обшем случае, имеет косвенное отношение
Неважно какое, важно чтобы она однозначно идентифицировала "кнопку".
А оно наверняка так и есть при отсутствиии иных идентифицирующих признаков.
знайка (2011-12-05 11:17:00) [12]
> Да и строка "_ctl0$ContentPH$GoodsDG$_ctl14$_ctl1" несет
> инф-цию о кнопке.
Эта строка к "кнопке", в обшем случае, имеет косвенное отношение.
Вообще определите у кого прописан клик, т.е. элемент документа и кликните его (нет прямого наименования, значит через паренты). Еще проще вызывать __doPostBack напрямую и не заморачиваться.
Сергей М. (2011-12-05 11:03:00) [13]
> а если это не кнопка?
А по барабану.
Сергей М. (2011-12-05 11:02:00) [14]> В исходном коде нет type и name кнопок
Зато там наверняка есть порядок создания или координаты кнопок - по ним и следует ориентироваться.
Да и строка "_ctl0$ContentPH$GoodsDG$_ctl14$_ctl1" несет инф-цию о кнопке.
OW (2011-12-05 11:02:00) [15]
> Так не бывает - кнопка есть, а кода ее создавшего нет.
а если это не кнопка? А только выглядит как кнопка
OW (2011-12-05 11:01:00) [16]google: javascript twebbrowser delphi
неужели не работает первое?
Сергей М. (2011-12-05 10:59:00) [17]
> В исходном коде нет type и name кнопок
Не трынди.
Так не бывает - кнопка есть, а кода ее создавшего нет.