Прослушиватель JavaScript не запускает onClick TamperMonkey

#javascript #html #onclick #listener

#javascript #HTML #onclick #прослушиватель

Вопрос:

Я довольно новичок в JavaScript, но имею довольно большой опыт работы с Java, поэтому я начал пытаться работать над плагином script / bot для веб-сайта. Однако, похоже, что прослушиватель, который я создал для StartButton, не запускается с помощью правильного onClick.

Скрипт запускается внутри TamperMonkey (вот почему вставка HTML находится в одной строке и почему === вместо ===).

Я проверил все идентификаторы и обычную логику, стоящую за этим, и прослушиватель должен работать, однако он не дает никаких указаний как таковых. У меня это в основном настроено так, чтобы другие функции были отключены, поэтому я бы знал, что кнопка запуска сработала, однако ничего не происходит. Когда я нажимаю кнопку stopButton, она выдает обычное предупреждение «Уже остановлено …». Код для всех соответствующих областей можно найти здесь:http://pastebin.com/0qJ1Hvz0

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

Ответ №1:

попробуйте это…

 document.getElementById('startButton').addEventListener('click', function() {
  alert('do something');
});
  

Ответ №2:

После детализации ваших кодов:

  • Не было HTML div с классом progress , поэтому я вставил один (родительский)

  • Ваш div, у которого есть идентификатор, stopAfterXGamesCheckbox на самом деле ваш html-идентификатор был stopAFterXGamesCheckbox

  • Был ярлык для stopAfterXGamesCheckbox , но не было div с идентификатором для that..so плавая в океане, я применил его, чтобы посмотреть, что также произойдет, старайтесь не помещать label for="" в качестве HTML-тега.

  • там была метка с таким названием label for = stopAfterReachingXCheckbox ; Это вызвало ошибку. Я считаю, что это должно быть label id = stopAfterReachingXCheckbox

    наконец, фрагмент ниже

         // INSERTING UI INTO WEBPAGE
        var UI_html = '<style scoped> @import url(https://fonts.googleapis.com/css?family=Ubuntu:300); table { font-family: "Ubuntu", sans-serif; background-color: #404040; color: #4A77A4; } #header { background-color: #262626; color: #ff0066; } label { font-weight: normal; } .odds { font-weight: normal; color: #00ffcc; } input[type=text] { border-radius: 5px; border: 1px solid rgba(0, 0, 0, .25); color: #808080; background-color: #262626; } input[type=text]:focus { background-color: #4A77A4; color: #ffcc00; } input[type=button] { background-color: #262626; border-color: #1a1a1a; } #startButton { color: #2ecc71; } #stopButton { color: #e74c3c; }</style><hr /><table border="1"><tbody><tr id="header"><td><input checked="checked" name="system" type="radio" value="nightengale" /> <label for="nightengaleRadioBtn">=]</label></td></tr><tr><td><table><tbody><tr><td><label for="defaultBetInput">Default Bet: </label> <input type="text" id="defaultBetInput"/></td></tr><tr><td><input type="checkbox" id="stopAfterXGamesCheckbox"/> <label >Stop after <input type="text" id="stopAfterXGamesInput"/> games</label></td></tr><tr><td><input type="checkbox" /> <label id="stopAfterReachingXCheckbox">Stop after reaching <input type="text" id="stopAfterReachingXInput"/> </label></td></tr><tr><td><label for="currentBalance">Current Balance: </label><span id="currentBalanceText"> -- </span></td></tr></tbody></table></td></tr><tr><td><input style="width: 50%;" type="button" value="Start" id="startButton"/><input style="width: 50%;" type="button" value="Stop" id="stopButton"/></td></tr></tbody></table><hr />';
        var UI = document.createElement('div');
        UI.innerHTML = UI_html;
        var insertBefore = document.getElementsByClassName("progress")[0];
        insertBefore.parentNode.insertBefore(UI, insertBefore);
        // FINISHED INSERTING UI INTO WEBPAGE
        // DEFINING VARIABLES
        var statusBanner = document.getElementById("banner");
        var redBetButton = document.getElementsByClassName("betButton")[0];
        var greenBetButton = document.getElementsByClassName("betButton")[1];
        var blackBetButton = document.getElementsByClassName("betButton")[2];
        var balanceSpan = document.getElementById("balance_r");
        var balanceSpanUI = document.getElementById("currentBalanceText");
        var betAmountInput = document.getElementById("betAmount");
       
        var defaultBetInput = document.getElementById("defaultBetInput");
        
        var stopAfterXGamesCheckbox = document.getElementById("stopAfterXGamesCheckbox");
        console.log(stopAfterXGamesCheckbox,defaultBetInput);
        var stopAfterXCheckbox = document.getElementById("stopAfterReachingXCheckbox");
        var stopAfterXGamesInput = document.getElementById("stopAfterXGamesInput");
        var stopAfterXInput = document.getElementById("stopAfterReachingXInput");
       
        var running = false;
        // FINISHED DEFINING VARIABLES
        // DEFINING LISTENERS (FOR UI)
        startButton.onclick = function()
        {
            var passedTest = true;
            if (defaultBetInput.value === '' || defaultBetInput.value <= 0)
                passedTest = false;
            if (stopAfterXGamesCheckbox.checked amp;amp; (stopAfterXGamesInput.value === '' || stopAfterXGamesInput.value <= 0))
                passedTest = false;
            if (stopAfterXCheckbox.checked amp;amp; (stopAfterXInput.value === '' || stopAfterXInput.value <= 0))
                passedTest = false;
           
            if (!running amp;amp; passedTest)
            {
                running = true;
                defaultBetInput.disabled = true;
                stopAfterXGamesCheckbox.disabled = true;
                stopAfterXGamesInput.disabled = true;
                stopAfterXCheckbox.disabled = true;
                stopAfterXInput.disabled = true;
               
              //  balanceSpanUI.innerHTML = getBalance();
            } else if (!passedTest) {
                alert("Either uncheck the boxes, or fill in the associated fields.");
            } else {
                alert("Already running...");
            }
        };
       
        stopButton.onclick = function()
        {
            if (running)
            {
                running = false;
                defaultBetInput.disabled = false;
                stopAfterXGamesCheckbox.disabled = false;
                stopAfterXGamesInput.disabled = false;
                stopAfterXCheckbox.disabled = false;
                stopAfterXInput.disabled = false;
               
                balanceSpanUI.innerHTML = "--";
            } else {
                alert("Already stopped...");
            }
        };
       
        defaultBetInput.oninput = function()
        {
           
        };
        // FINISHED DEFINING LISTENERS (FOR UI)
        // DEFINING FUNCTIONS
        function getBalance()
        {
            return balanceSpan.innerHTML;
        }  
     <div class="progress">
    </div>