2015-04-20 3 views
-1

Итак, ребята, позвольте мне объяснить эту проблему, весь код работает нормально, но .click не работает, пытаясь заставить его щелкнуть по кнопке веб-сайта, но по какой-то причине его не нажимает на это, это ошибка или что-то еще?Расширение Chrome JS .click(); не работает

спасибо.

КОД:

document.addEventListener('DOMContentLoaded', function() { 

    document.getElementById('status').textContent = "Going To Localhost"; 
    chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { 
     chrome.tabs.update(tabs[0].id, { url: "http://localhost/" }); 
    }); 
    var button = document.getElementById("mybutton"); 
    button.addEventListener("click", function() { 
     chrome.tabs.executeScript(null, {code: 'document.getElementById("username").value = "user";'}, function(){ 
      chrome.tabs.executeScript(null, {code: 'document.getElementById("password").value = "pass";'}, function(){ 
       chrome.tabs.executeScript(null, {code: 'var this_button = document.getElementsByClassName("btnLogin"); this_button.click();'}, function(){ 
       }); 
      }); 
     }); 
    }, false); 

},function(errorMessage) { 
    alert(errorMessage); 
    }); 

ответ

0

getElementsByClassName (обратите внимание на плюрализацию) возвращает NodeList. Таким образом, вы должны были бы получить доступ к первому элементу, как:

chrome.tabs.executeScript(null, {code: 'var this_button = document.getElementsByClassName("btnLogin"); this_button[0].click();'}); 

ИЛИ, современный браузер, Chrome, вы можете использовать вместо querySelector:

chrome.tabs.executeScript(null, {code: 'var this_button = document.querySelector(".btnLogin"); this_button[0].click();'}); 
+0

P.S. Вы должны проверить свою консоль на наличие ошибок, он сказал бы вам, что не было метода 'click' – CodingIntrigue

+0

Спасибо, очень отличный ответ :) –

+0

Я сейчас загляну в консоль для ошибок. –

Смежные вопросы