Chrome Extension JS .click();不工作

时间:2015-04-20 11:42:01

标签: javascript jquery

所以大家让我解释一下这个问题所有的代码都运行正常但是.click不工作我试图让它点击网站按钮但是由于某种原因它不点击它就是这个bug还是什么?

非常感谢。

CODE:

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);
  });

1 个答案:

答案 0 :(得分: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();'});