Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Браузер не реагирует на element.click() (https://javascript.ru/forum/events/63062-brauzer-ne-reagiruet-na-element-click.html)

Ron_Kerher 15.05.2016 15:09

Браузер не реагирует на element.click()
 
Есть таблица, генерируется автоматически.
Сгенерированный HTML код одной ячейки(на скриншоте выделена голубым) выглядит так:
Код:

<td id="5763723f1751" class="eventCellValue">1.12</td>
Сама таблица выглядит так:

JS страницы реагирует на нажатие ячейки таким образом:
Генерируется новый <DIV>, при этом код ячейки меняется на:
Код:

<td id="5763723f1751" class="eventCellSelected">1.12</td>
Скрипт страницы очень большой, сложно было найти на какое событие запускается обработчик:
Выходит такая схема:
Когда на элементе происходит событие MouseDown, проверяется условие, если условие истинно, то скрипт переходит к обработке события MouseUp. И уже на MouseUp висит функция, создающая новый <div>, выглядит он так:

Суть моего вопроса:
Как вызвать событие (то есть создание нового дива)?
Такой код:
bet = document.getElementById('5763723f1751');
      bet.click();

Не работает.
При наведении на ячейку курсор приобретает вид "выбор ссылки"


P.S. - проблема возникла в ходе написание бота для букмекерской конторы, и самое интересное, что функции других элементов страницы прекрасно вызываются через .click(). В общем, господа, что-то тут не чисто, через .mouseup() и .mousedown() тоже ничего не происходит.
В консоли браузера ошибок не появляется, просто показывается , что программа "думает" (песочные часы), а результата никакого. HELP!

Decode 16.05.2016 00:52

Ron_Kerher, "Фонбет" надуть хочешь? :)

Ron_Kerher 16.05.2016 17:19

Громко сказано, конечно) Но автоматизировать процесс было бы неплохо.

Ron_Kerher 16.05.2016 17:20

Полагаю, проблема вполне решаема.

Dilettante_Pro 16.05.2016 18:36

Ron_Kerher,
А обработчик события click для этого элемента есть? Если нет - то не сработает

Decode 16.05.2016 18:37

Цитата:

Сообщение от Dilettante_Pro
click() - это функция для объекта jquery, а не для DOM-элемента

<button>Button</button>

<script>
  var btn = document.body.children[0];

  btn.onclick = function() {
    alert('bla-bla');
  };

  btn.click();
</script>

Decode 16.05.2016 18:38

Цитата:

Сообщение от Ron_Kerher
Как вызвать событие (то есть создание нового дива)?

А что именно ты хочешь сделать? Ну появится купон для ставки и что?

Dilettante_Pro 16.05.2016 18:40

Decode,
Я уже понял и удалил

Ron_Kerher 16.05.2016 19:38

Спасибо за ответы. С купоном всё предельно просто.
Он отправляется командой:
couponNewButtonPlaceBet.click();

То есть, для того, чтобы сделать ставку нужно следующее:
1) Определить размер ставки(исходя из размера банка);
2) Внести этот размер в соответствующее поле на купоне;
3) Отправить купон.
Все операции у меня получаются, за исключением вызова купона.

Ron_Kerher 29.06.2016 21:43

Решение найдено!
 
Вся проблема оказалась в форм-факторе моей программы. Она подгружалась как расширение для Google Chrome. По умолчанию скрипты расширения не могут взаимодействовать с js на целевой странице.

В общем, если нужен полный доступ к странице через расширение браузера делайте инъекцию скрипта прямо в код HTML. То есть ваше дополнение должно создавать в header код скрипта. Описывать здесь этот процесс не буду, тк есть статьи на тематических сайтах с подробными инструкциями.


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