Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объект кнопка. Не получается программно нажать. Хелп!!!
 
 автор: windrunner 2011   (23.01.2011 в 15:35)   письмо автору
 
 

В общем дали задание по работе. Я недавно устроился (на испытательном сроке). Мне нужно доказать что я что то могу. Знаете мультикиоски по оплате за сотовую связь? Мне нужно программно нажать на кнопку там.

Все окна представляют собой страницы html. На каждой странице описываются объекты 8 кнопок (class id кнопки, откуда брать изображение когда активна, нажата, неактивна, все значения одинаковые). На каждой странице можно сделать их видимыми-невидимыми. То активна кнопка или нет на странице нету, приходит с хоста.

Мне нужно изменить одну страницу. Там одна кнопка активная. Ее я сделал невидимой. Создал свою кнопку, представляющую собой объект IMG. После нажатия на мою кнопку, через 3 секунды должна программно нажаться настоящая кнопка.

Я таймер, анимацию все сделал. Осталось нажать на настоящую кнопку. Но вот проблема!!! Метод CLICK не проходит!!!

На моей кнопке-изображении метод CLICK работает. А на настоящей нет. В чем может быть причина. Кто знает? Подскажите...

  Ответить  
 
 автор: windrunner 2011   (23.01.2011 в 15:50)   письмо автору
 
   для: windrunner 2011   (23.01.2011 в 15:35)
 

Я думаю у настоящей кнопки нет события OnClick. Другое какое то событие. Или нет?

  Ответить  
 
 автор: Абырвалг   (23.01.2011 в 20:24)   письмо автору
 
   для: windrunner 2011   (23.01.2011 в 15:35)
 

Если настоящая кнопка - это тег <INPUT> любого типа, то в любом браузере по ней можно программно кликнуть методом click ().
Однако следует помнить, что клик будет "программным", сиречь визуального отображения процесса клика не будет - кнопка не будет "вдавливаться" и потом возвращаться в исходное состояние.

В Вашем же случае, как я понял, настоящая кнопка вовсе не видна, т.е. имеет style="display: none", или style="visibility: hidden".
У Вас никаких проблем быть вообще не должно.

Вот Вам код для проверки:
<script>
function mF () {document.getElementById ('btn1').click ()}
</script>
<body onload="setTimeout ('mF ()', 2000)">
<input style="display: none" type="button" id="btn1" onclick="document.location.href = 'http://google.com'" value="Go!">
</body>
или иначе
<script>
function mF () {document.getElementById ('btn2').click ()}
</script>
<body onload="setTimeout ('mF ()', 2000)">
<form action="http://yahoo.com">
<input style="visibility: hidden" type="submit" id="btn2" value="Go!">
</form>
</body>
или совсем иначе
<script>
function mF () {document.getElementById ('btn3').click ()}
</script>
<body onload="setTimeout ('mF ()', 2000)">
<form action="http://yandex.ru" style="visibility: hidden">
<input type="image" id="btn3">
</form>
</body>

Если же Ваша настоящая кнопка - это не <INPUT>, а какой-то другой тег, то тогда действительно возможны проблемы - в некоторых браузерах на "прочих тегах" (все, кроме <INPUT>) метод click () не работает, в них надо создавать событие работы мыши и инициировать клик методами createEvent () и initMouseEvent ().

  Ответить  
 
 автор: yuk   (23.01.2011 в 23:57)   письмо автору
 
   для: windrunner 2011   (23.01.2011 в 15:35)
 

Может, вместо того, чтобы нажать настоящую кнопку можно просто выполнить то, что должно выполниться по нажатии на эту кнопку?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования