Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Клик по кнопке?(подскажите пжл.) (https://javascript.ru/forum/css-html-firefox-mizilla/24915-klik-po-knopke-podskazhite-pzhl.html)

Benos 18.01.2012 19:42

Клик по кнопке?(подскажите пжл.)
 
Добрый день!
Есть кнопка:
<a class="button grey6" href="javascript:go(4);"><span>Переход</span><em></em></a>

Как я понял по клику кнопки вызывается функция go() с параметром "4",
Я так понял это что то аналогично переходу по ссылке?
href="javascript:go(4);"


Подскажите пжл. как можно вызвать эту функцию... скриптом...
попробовал так:
location.href="javascript:go(4);"

чет ни фига не вышло...

devote 18.01.2012 20:59

похоже на
history.go(4);

но у вас простой вызов window.go(4);

Benos 18.01.2012 21:24

что то ни чего...
попробовал:
window.go(4);
history.go(4);
document.go(4);

ни один результата не дал :(

Benos 19.01.2012 22:29

решил вопрос... но всю башку сломал :)
var ButtomTAG = document.getElementById("Form_num_1").getElementsByTagName("a"); //собираем в массив все тэги <а> - 1 из них наша кнопка
        for (var i = 0; i < ButtomTAG.length; i++) { // перебираем элементы
             if (ButtomTAG[i].firstChild.textContent == "Переход") { // ищем совпадения текста кнопки
                  ButtomTAG[i].click(); // кликаем
                  break;
              }
        }

может кому пригодиться :)

Benos 21.01.2012 12:13

есть код
<a href="#" id="listAll" onclick="return list();" class="orange-wide">
<img src="/images/img/img.png" alt="" height="60" width="30" /><span>Список</span></a>

вызываю скриптом
document.getElementById("listAll").click();

почему не работает?
кто может подскажите пжл :)

Benos 02.02.2012 21:18

вопрос решил... пришлось поковырять JQuery...
ну и естественно без добрых людей не обошлось...
Код кому надо:
if(unsafeWindow.jQuery == 'undefined'){ 
    var GM_JQ=document.createElement('script');
    GM_JQ.src='http://jquery.com/src/jquery-latest.js';
    GM_JQ.type='text/javascript';
    document.getElementsByTagName('head')[0].appendChild(GM_JQ);
    
   function GM_wait(){
        if(typeof unsafeWindow.jQuery == 'undefined'){
            window.setTimeout(GM_wait,100);
        }else{
            $=unsafeWindow.jQuery;
            GM_JQ_fun();
        }
     }
    GM_wait();
}else{
    $=unsafeWindow.jQuery;
    GM_JQ_fun();
}

function GM_JQ_fun()
{
  setTimeout(function() { $('#list_num').click(); }, 2000 );
}

Benos 18.03.2013 22:01

Всем привет! снова я :)
Залип на простом вопросе :(
Имеем:
Окно с фреймом:
<iframe id="mainbox" frameborder="0" name="main" src="/main.php"></iframe>

во фрейме кнопка:
<input type="button" class="button button-route" value="Выйти" onclick="core.moveTo(24)">

Нужно получить value
Делаю:
if(document.getElementById('mainbox').contentWindow.document.getElementsByTagName('input').value == "Выйти" ){
alert('1')
}else{
alert('2')
}

Выкидывает "2" :(

Хотя в данном случае когда у кнопки есть ID
<input type="button" class="button" id="Referesh" value="Обновить" onclick="core.refresh()">

то код:
if(document.getElementById('mainbox').contentWindow.document.getElementById('Referesh').value == "Обновить"){
alert('1')
}else{
alert('2')
}

Выкидывает "1"

Где то что то не так... а где не понять :(

рони 18.03.2013 22:14

Цитата:

Сообщение от Benos
getElementsByTagName('input')

это не один элемент .

document.getElementById('mainbox').contentWindow.document.getElementsByTagName('input')[0].value

Benos 20.03.2013 15:49

не много не по теме.. но не вижу смысла создавать новый топ... поэтому решил написать тут...
Цель следующая:
Есть сайт(аля каталог)... на нем две кнопки "вперед" и "назад" (в главном фрейме)
Хочу привязать кнопки в кнопкам клавиатуры...
пишу код:
document.onkeyup = KeyCheck; // Назначим обработчик событий нажатий клавиш

var EventStat = '' ; // задаем переменную

function KeyCheck(event){
    
    switch(event.keyCode) // Проверяем, какую клавишу нажал пользователь
    { 
        case 112: // Кнопка F1   
            //alert('Ты нажал F1');
            EventStat = 'вперед';
            break;
        case 113: // Кнопка F2           
            //alert('Ты нажал F2');
            EventStat = 'назад';
            break;
    }
}

var InputArray = document.getElementById('mainbox').contentWindow.document.getElementsByTagName('input');
   for(var i=0; i < InputArray.length; i++){
    if(document.getElementById('mainbox').contentWindow.document.getElementsByTagName('input')[i].value == EventStat){
       document.getElementById('mainbox').contentWindow.document.getElementsByTagName('input')[i].click();
       break;
    }
  }

По отдельности все работает... обработчик событий кнопки ловит... определение input`а в цикле тоже... собираю вместе ноль реакции...
похожи косяк в 22 строке кода... при сравнении значения value и переменной...
Посмотрите свежим взглядом пжл.

сами кнопки имеют код:
<input type="button" class="button button-route" value="вперед" onclick="core.moveTo(18)">
<input type="button" class="button button-route" value="назад" onclick="core.moveTo(20)">


Пробовал выкинуть цикл но тоже без результатно
document.onkeyup = KeyCheck; // Назначим обработчик событий нажатий клавиш

var EventStat = '' ;

function KeyCheck(event){
    
    switch(event.keyCode) // Проверяем, какую клавишу нажал пользователь
    { 
        case 112: // Кнопка F1   
            //alert('Ты нажал F1');
            EventStat = 'вперед';
            break;
        case 113: // Кнопка F2           
            //alert('Ты нажал F2');
            EventStat = 'назад';
            break;
    }
}

if(EventStat == 'вперед'){
    alert('F1');
}

if(EventStat == 'назад'){
    alert('F2');
}

рони 20.03.2013 16:36

Benos,
зачем кликать - то ? выбирать инпуты ? не проще
case 112: core.moveTo(18);

Benos 20.03.2013 18:10

Цитата:

Сообщение от рони (Сообщение 241722)
Benos,
зачем кликать - то ? выбирать инпуты ? не проще
case 112: core.moveTo(18);

косяк тут в том, что при прямом вызове функции следующая страницы открывается на все окно... другие фреймы не открываются... а надо что бы фрейм открылся во фрейме :)
вот и мудрю с эмуляцией клика по кнопке :)

рони 20.03.2013 18:43

Benos,
почему у вас проверка инпутов или алеры во втором варианте ВНЕ тела функции?

danik.js 20.03.2013 21:55

Цитата:

Сообщение от Benos
косяк тут в том, что при прямом вызове функции следующая страницы открывается на все окно

Ну так вызывайте core нужного фрейма
document.getElementById('mainbox').contentWindow.core.moveTo(4)

danik.js 20.03.2013 21:56

Прочитал всю тему. Понял одно - автор ищет на свою попу приключения. Ему не нужны простые и легкие решения ))

Benos 21.03.2013 20:24

Цитата:

Сообщение от рони (Сообщение 241742)
Benos,
почему у вас проверка инпутов или алеры во втором варианте ВНЕ тела функции?

Я чет думал, что не надо в тело вносить... спс за поправку)

Цитата:

Сообщение от danik.js (Сообщение 241776)
Прочитал всю тему. Понял одно - автор ищет на свою попу приключения. Ему не нужны простые и легкие решения ))

Я просто еще учусь :write:

danik.js 21.03.2013 20:27

Цитата:

Сообщение от danik.js
document.getElementById('mainbox').contentWindow.c ore.moveTo(4)

А это сработало?

Benos 21.03.2013 20:36

Еще вопрос...
Вставляю данный код в Greasmonkey
function KeyCheck(event){
   
 switch(event.keyCode) // Проверяем, какую клавишу нажал пользователь
 {
  case 112: // Кнопка F1  
  alert('Ты нажал F1');
  break;
  case 113: // Кнопка F2          
  alert('Ты нажал F2');
  break;
 }
}

Алерты вылетают при нажатии "Бэкспейса" и при нажатии F1... по идеии не должно быть такого :)

П.С. Понял где косяк... ошибся в коде... код подправил :)

Benos 21.03.2013 20:41

Цитата:

Сообщение от danik.js (Сообщение 241925)
А это сработало?

да сработало... спс :)

Benos 23.03.2013 15:06

Вроде все собрал и все вроде как работает...
но есть не понятный косяк...
В одном из фрейме на сайте, есть строка ввода.
Так вот данный код:
Цитата:

Сообщение от Benos (Сообщение 241926)
function KeyCheck(event){
   
 switch(event.keyCode) 
 {
  case 112: // Кнопка F1  
  alert('Ты нажал F1');
  break;
  case 113: // Кнопка F2          
  alert('Ты нажал F2');
  break;
 }
}

работате только когда в строке ввода стоит курсор... стоит мышкой ткнуть на любой элемент страницы, строка ввода перестает быть активной и алерты не пашут. Как только снова ставишь курсор в строку... алерты начинают работать... как это можно исправить?

danik.js 23.03.2013 17:11

Навешать обработчик на document а не на поле ввода.

Benos 23.03.2013 18:51

Цитата:

Сообщение от danik.js (Сообщение 242202)
Навешать обработчик на document а не на поле ввода.

так на нем и висит...
document.onkeyup = KeyCheck;

Benos 10.03.2016 00:51

Время идет, а трудности все те же :)
 
Приветствую всех!
Давно тут не был, но нужда снова привела за помощью :)
Суть проблемы:
Есть некая форма состоящая из input`ов (ФИО, Дата, телефон).
Проблем заполнить ее нет.
Но есть заковырка.. есть кнопка, отправки данных из input`ов куда далеко.
Все бы ничего, но кнопка не простая.

Имеет два состояния - неактивна
<div class="not_ready"> <img src="static/img/not_ready.png"> </div>

и активна
<div class="not_ready"> <img class="ready" onclick="conf_user();" src="static/img/ready.png"> </div>

на страничке есть некий скрипт, который после того как мышкой покликать все input`ы делает ее активной.
Этот сложный этап я прошел, ручной замены кнопки(смотрел что прописывается в кнопке, если вручную ввести данные).
$(".keyboard_control_buttons .not_ready img").remove();
$(".keyboard_control_buttons .not_ready").append('<img class="ready" onclick="conf_user();" src="static/img/ready.png">');

Но клинуть скриптом на эту кнопку не выходит.
Мышкой все проходит на ура, а вот скриптом ни как.
Пробовал прямой вызов функции делать... но что то никак :)

Причем
$(".keyboard_control_buttons .not_ready").html();

показывает содержимое моей кнопки... значит на странице она есть.

рони 10.03.2016 03:20

Цитата:

Сообщение от Benos
Но клинуть скриптом на эту кнопку не выходит.

а зачем? если можно запустить conf_user()

Benos 10.03.2016 13:09

Пробовал но не вышло...
$(".ready").contentWindow.core.conf_user();

если вызываю верно?

Может конечно что не так пишут тут...
Собственно полный код блока кнопок (всего две)
<div class="keyboard">
	<div class="keyboard_control_buttons">
		<div class="cancel">
			
		<img src="static/img/cancel.png"></div>
		<div class="not_ready">
			
		<img class="ready" onclick="conf_user();" src="static/img/ready.png"></div>
	</div>
</div>

Скрипт
$(".keyboard_control_buttons .not_ready").html();

выдает
<img class="ready" onclick="conf_user();" src="static/img/ready.png">


Вроде все так... но ни в какую. 3й день сижу :)

рони 10.03.2016 13:13

Benos,
давно ли в jquery появилось
Цитата:

Сообщение от Benos
contentWindow.core.conf

?

Benos 10.03.2016 13:37

рони,
понял одно, я не знаю как в jquery на прямую вызвать функцию :)
не подскажите?
А то что то поиск не дал нужного результата :(

рони 10.03.2016 15:12

Цитата:

Сообщение от Benos
как в jquery на прямую вызвать функцию

:blink:
conf_user()

Benos 10.03.2016 15:34

пробовал, не вышло...
я правильно понимаю, если кнопка мышкой кликается и форма уходит, то с кнопкой все в порядке.

рони 10.03.2016 15:44

Benos,
кто его знает что у вас правильно или нет


Часовой пояс GMT +3, время: 00:41.