Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
1
Chrome Extention

Расширение-автоклик для браузера

24.03.2018, 22:41. Показов 6269. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет! Я в программировании на JavaScript новичек. Мне нужно сделать расширение для браузера, которое на определённом сайте при нажатии к примеру клавиши F7 начинало бы кликать без остановки с большой скоростью кнопку id которой к примеру "target-btn". Я долго пробовал сделать сам, но у меня ничего не получилось.

Вот код, который я пытался втиснуть в расширение:

Файл script.js
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
addEventListener("keyup",clicker_start);
 
function clicker_start(event){
    
    if (event.key == "F7")
    {
        document.getElementById('target-btn').click();
        
    }
    
    
}
А вот manifest.json
JSON
1
2
3
4
5
6
7
8
9
10
11
12
  "name":"Рассширение для браузера google chrome",
  "description":"Мое рассширение для google chrome",
  "version":"1.0",
  "manifest_version":2,
  "content_scripts":[
    {
      "matches": ["https://название сайта/*"],
      "js" : ["script.js"],
      "run_at":"document_end"
    }
  ]
}
P.S. Если что, мой код не судите строго, как я сказал я ещё салага в этом деле.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2018, 22:41
Ответы с готовыми решениями:

Расширение для браузера
Я хочу сделать расширение для браузера по подобию похожего расширения, есть некий сервис похожий на...

Как заставить расширение для браузера исполнить, предложенный в посте, JavaScript-код?
Всем привет. Решил написать простое расширение для браузера "Google Chrome" с следующей задачей:...

Создать расширение для браузера Yandex, которое будет менять цвет элементов на странице
Заранее извиняюсь за повторное размещение тему, не много запутался в разделах форума. Доброго...

Авторизация на сайте через расширение браузера
Добрый день! Делаю расширение браузера Google Chrome. Не могу справиться с авторизацией. Нужно что...

12
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
25.03.2018, 17:33  [ТС] 2
Привет! Я в программировании на JavaScript новичек. Мне нужно сделать расширение для браузера (Хром), которое на определённом сайте (сайт не мой) при нажатии, к примеру, клавиши Enter делало бы клик на кнопку id которой, к примеру, "target-btn". При том курсор мыши должен двигаться и работать независимо от этого действия. Я долго пробовал сделать сам, но у меня ничего не получилось.

Вот код, который я пытался втиснуть в расширение:

Файл script.js

Javascript
1
2
3
4
5
6
7
8
9
10
addEventListener("keyup",clicker_start);
 
function clicker_start(event){
    
    if (event.key == "Enter")
    {
        document.getElementById('target-btn').click();
        
    }   
}
А вот manifest.json

JSON
1
2
3
4
5
6
7
8
9
10
11
12
"name":"Рассширение для браузера google chrome",
  "description":"Мое рассширение для google chrome",
  "version":"1.0",
  "manifest_version":2,
  "content_scripts":[
    {
      "matches": ["https://название сайта/*"],
      "js" : ["script.js"],
      "run_at":"document_end"
    }
  ]
}
P.S. Если что, мой код не судите строго, как я сказал я ещё салага в этом деле.

Добавлено через 4 часа 21 минуту
UPD: Я со многими проблемами уже разобрался, единственное, что я не могу найти это сам обработчик клика т.к. ни $('#target-btn').click(); ни getElementById('target-btn').click(); не работают.

Сейчас мой файл со скриптом выглядит вот так:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function addEvent(obj, type, fn){
    if (obj.addEventListener){
        obj.addEventListener( type, fn, false );
    } else if(obj.attachEvent) {
        obj.attachEvent( "on"+type, fn );
    } else {
        obj["on"+type] = fn;
    }
}
addEvent(document, 'keypress', function(e) {
    if (e.keyCode == 13) {
        //alert('You pressed Enter');       
    }
});
Обработчик нажатия Enter работает, я его при помощи алерта проверял
0
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
25.03.2018, 18:21 3
strusik, а так?
Javascript
1
document.getElementById('target-btn').onclick;
0
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
25.03.2018, 18:52  [ТС] 4
Могу код самой кнопки выложить ещё.

Не помогло, всё равно не нажимается. Вот если что часть кода где я подключал может я что-то неправильно сделал:

Javascript
1
2
3
4
5
addEvent(document, 'keypress', function(e) {
    if (e.keyCode == 13) {
        document.getElementById('target-btn').onclick;
    }
});
0
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
25.03.2018, 18:55 5
strusik, кое-что изменил.
Javascript
1
2
3
4
5
document.onkeyup = function (event) {
    if (event.keyCode == 13){
        document.getElementById("'target-btn'").onclick ;
    }
}
0
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
25.03.2018, 19:10  [ТС] 6
Всё равно ничего не происходит, кнопка это зачарованная что ли не пойму?)) Уже третий день с ней мучаюсь. При том я писал подобную штуку через С# и всё работало, но мне это не подходит ибо на С# там был тестовый браузер на котором сайт не обновляется.

вот как это выглядело на C#

C#
1
2
3
4
5
6
private void button2_2_Click(object sender, EventArgs e)
{
   IWebElement element;
   element = Browser.FindElement(By.Id("trade-btn"));
   element.Click();
}
0
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
25.03.2018, 21:14 7
strusik, так ведь уже пробовали ?
Javascript
1
2
3
4
5
document.onkeyup = function (event) {
    if (event.keyCode == 13){
        document.getElementById("target-btn").click() ;
    }
}
0
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
25.03.2018, 21:39  [ТС] 8
Да, к сожалению тоже не работает, могу скинуть ссылку на сайт, но там авторизация нужна чтоб эту кнопку увидеть, ну или код могу скинуть кнопки
0
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
25.03.2018, 21:49 9
strusik, Давайте код кнопки.
0
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
26.03.2018, 20:15  [ТС] 10
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="trade-btn" modal_open="trade" class="btn btn_v2 hint_aim_5 hint_clickable">
                                Обмен
                                <div class="hint_container hint_container_5 hidden">
                                    <img src="/images/hit-2.svg">
                                    <div class="hint_text">
                                        #5 Нажмите на кнопку <br>"Обмен"<br>
                                        <span class="hint_skip_all">Выход</span>
                                        <span class="hint_skip">Далее</span>
                                    </div>
                                </div>
                                <div class="hint_container hint_container_5 hint_container_5_mobile hidden">
                                    <img src="/images/hit-7.svg">
                                    <div class="hint_text">
                                        #5 Нажмите на кнопку <br>"Обмен"<br>
                                        <span class="hint_skip_all">Выход</span>
                                        <span class="hint_skip">Далее</span>
                                    </div>
                                </div>
                            </div>
А может кстати и без авторизации видно будет, там кнопка "обмен" большая по середине или же "trade" если англ.версия сайта https://cs.money/ru

Добавлено через 21 час 35 минут
Aleksandrw, я ещё пробовал сделать имитацию клика мыши по координатам но тоже не выходит. Не понимаю, что с этой кнопкой не так

Добавлено через 47 минут
Aleksandrw, кстати полазив по коду сайта вот что я нашел во вкладке Event Listener, но не совсем пойму что это такое. Вроде как какое-то событие подключенное к этой кнопке. Возможно можно просто вызвать событие срабатывания кнопки без клика на кнопку?

ссылка на скрин - http://images.vfl.ru/ii/152208... 125597.png
0
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
26.03.2018, 20:48 11
strusik, честно, посмотрев в некоторых источниках , немного в недоумении от чего метод '.click ()' не работает при нажатии на Enter.


Цитата Сообщение от strusik Посмотреть сообщение
Возможно можно просто вызвать событие срабатывания кнопки без клика на кнопку?
Javascript
1
2
3
4
5
6
function act () {
    var mess = alert ('wow');
    document.getElementById('button').click(mess);
    
}
act ();
0
1 / 1 / 0
Регистрация: 24.03.2018
Сообщений: 9
26.03.2018, 22:49  [ТС] 12
Aleksandrw, а что это кстати за modal_open="trade" в коде кнопки? что-то мне подсказывает это как-то связано с тем, что после нажатия происходит

Добавлено через 1 час 57 минут
Aleksandrw, всё, спасибо за помощь, я смог решить проблему эту, вот код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$(document).ready(function() {
    var enterKeyCode = 13;
 
    var el = document.getElementById("trade-btn");
    function triggerMouseEvent(node, eventType) {
        var clickEvent = document.createEvent('MouseEvents');
        clickEvent.initEvent(eventType, true, true);
        node.dispatchEvent(clickEvent);
    }
 
    $(document).on("keypress", function(event) {
        if (event.which === enterKeyCode) {
            triggerMouseEvent (el , "mousedown");
            triggerMouseEvent (el , "click");
        }
    });
});
1
39 / 38 / 26
Регистрация: 05.01.2018
Сообщений: 283
26.03.2018, 22:56 13
strusik, неплохо
0
26.03.2018, 22:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.03.2018, 22:56
Помогаю со студенческими работами здесь

Расширение для браузера
у меня есть расширение просто файлом js идёт оно для гугла хрома и мазилы но его может стырить...

Расширение для браузера, возможности
Посдкажите, возможно ли в принципе реализовать следующий функционал на JS в рамках расширения для...

Нужно доделать расширение для браузера
Никак не могу заставить хром, создать элемент в каждой вкладке. Помогите плиз. Файл: .json {...

Как создать расширение для браузера, меняющее значение css элементов?
Какие файлы нужны для расширения, чтоб при добавлении расширения, оно сразу активировалось.И...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru