Как послать кнопке на HTML-странице событие onclick ?
От: vovanblk  
Дата: 04.02.03 11:25
Оценка:
Нужно чтобы кнопка на станице нажалась сама в определённое время. Как до неё добраться из Visual C. и сымитировать нажатие? Мне кажется это связано с IDispatch, но у меня не получается получить доступ к кнопке. К IE добрался, а к кнопке не могу.
Re: Как послать кнопке на HTML-странице событие onclick ?
От: Nikeware http://www.nikeware.com
Дата: 04.02.03 11:38
Оценка:
Здравствуйте, vovanblk, Вы писали:

V>К IE добрался, а к кнопке не могу.


ID у кнопки прописан? Если да, то у документа getElementByID.
Правда этот метод появился только у IE 5.0 или 5.5 (точно не помню).

"To merge or not to merge?"
www.visual-comparer.com
Re: Как послать кнопке на HTML-странице событие onclick ?
От: Scud Россия  
Дата: 06.02.03 14:03
Оценка:
Здравствуйте, vovanblk, Вы писали:

V>Нужно чтобы кнопка на станице нажалась сама в определённое время. Как до неё добраться из Visual C. и сымитировать нажатие? Мне кажется это связано с IDispatch, но у меня не получается получить доступ к кнопке. К IE добрался, а к кнопке не могу.


1. У кнопки должен быть провисан атрибут ID
<INPUT TYPE="Button" ID="Btn1" VALUE="Click me" onclick="window.alert(this.id + 'has been clicked')">
2. Если добрался до IE, значит есть IHTMLWindow2
Отсюда такой код:


CComPtr<IHTMLWindow2> pWindow2 = /* короче уже содержит указатель на IHTMLWindow2 */
CComPtr<IHTMLDocument2> pDoc2;
CComPtr<IHTMLElementCollection> pAll;
CComPtr<IDispatch> pElementDisp;
CComPtr<IHTMLElement> pButton;

if( _FAILED( pWindow2->get_document( &pDoc2 ) ) ) return;
if( _FAILED( pDoc2->get_all( &pAll ) ) ) return;
if( _FAILED( pAll->item(CComVariant("Btn1"), CComVariant(0), &pElementDisp ) ) ) return;
if( _FAILED( pElementDisp.QueryInterface( &pButton ) ) ) return;
_HR( pButton->click() );


В общем вот так. Точно также можно ссылки на страницах кликать.
p.s. Код на синтаксис не проверял
Re[2]: Как послать кнопке на HTML-странице событие onclick ?
От: vovanblk  
Дата: 12.02.03 13:36
Оценка:
Спасибо за помощь
Re[2]: Как послать кнопке на HTML-странице событие onclick ?
От: Аноним  
Дата: 11.06.07 16:04
Оценка:
Здравствуйте, Scud, Вы писали:

S>1. У кнопки должен быть провисан атрибут ID

S> <INPUT TYPE="Button" ID="Btn1" VALUE="Click me" onclick="window.alert(this.id + 'has been clicked')">
S>2. Если добрался до IE, значит есть IHTMLWindow2
S> Отсюда такой код:


S>
S>CComPtr<IHTMLWindow2> pWindow2 = /* короче уже содержит указатель на IHTMLWindow2 */
S>CComPtr<IHTMLDocument2> pDoc2;
S>CComPtr<IHTMLElementCollection> pAll;
S>CComPtr<IDispatch> pElementDisp;
S>CComPtr<IHTMLElement> pButton;

S>if( _FAILED( pWindow2->get_document( &pDoc2 ) ) ) return;
S>if( _FAILED( pDoc2->get_all( &pAll ) ) ) return;
S>if( _FAILED( pAll->item(CComVariant("Btn1"), CComVariant(0), &pElementDisp ) ) ) return;
S>if( _FAILED( pElementDisp.QueryInterface( &pButton ) ) ) return;
S>_HR( pButton->click() );
S>


а можно таким способом установить текст в элемент file upload ?
какой в этом случае метод использовать ?
попробовал put_outerText, так он рисует текст вместо самого элемента
Re[3]: Видимо, нет
От: denaturat  
Дата: 13.06.07 07:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>а можно таким способом установить текст в элемент file upload ?

А>какой в этом случае метод использовать ?
А>попробовал put_outerText, так он рисует текст вместо самого элемента


value Property

--------------------------------------------------------------------------------

Retrieves the file name of the input object after the text is set by user input.

Syntax

HTML N/A
Scripting [ sValue = ] INPUT type=file.value

Possible Values

sValue String that receives the file name.

The property is read-only. The property has no default value.

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.