Google chrome 单击、粘贴文本并从扩展名上载文件

Google chrome 单击、粘贴文本并从扩展名上载文件,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,所以我基本上是在开发一个自动点击粘贴和上传系统,用于在谷歌页面中显示多个文本和文件 这帮助我获得了我正在寻找的对象的实例:按钮、文本框、RichTextBox等等 现在我想和他们一起工作 例如,我知道一个按钮的id,函数订阅了它的点击事件。如何从扩展触发click事件?我曾尝试在“document_startup”中使用click事件处理程序(通过DOM inspector发现)注入一个脚本,但没有得到任何错误或其他信息 这是内容脚本!loggerhead函数应该插入脚本,但我认为没有。blow

所以我基本上是在开发一个自动点击粘贴和上传系统,用于在谷歌页面中显示多个文本和文件

这帮助我获得了我正在寻找的对象的实例:按钮、文本框、RichTextBox等等

现在我想和他们一起工作

例如,我知道一个按钮的id,函数订阅了它的点击事件。如何从扩展触发click事件?我曾尝试在“document_startup”中使用click事件处理程序(通过DOM inspector发现)注入一个脚本,但没有得到任何错误或其他信息

这是内容脚本!loggerhead函数应该插入脚本,但我认为没有。blow代码没有给出任何东西的原因可能是什么

// Runs a function for every added DOM element that matches a filter
// filter -- either function(DOM_node){/*...*/}, returns true or false 
//           OR a jQuery selector
// callback -- function(DOM_node){/*...*/}
function watchNodes(filter, callback){
  observer = new MutationObserver( function (mutations) {
    mutations.forEach( function (mutation){
      if(typeof filter === "function"){
        $(mutation.addedNodes).filter(
          function(i){ return filter(this); }
        ).each(
          function(i){ callback(this); }
        );
      } else {
        $(mutation.addedNodes).filter(filter).each(
          function(i){ callback(this); }
        );
      }
    });
  });

  // For every added element, a mutation will be processed
  //   with mutation.taget == parent
  //   and mutation.addedNodes containing the added element
  observer.observe(document, { subtree: true, childList: true });
}


function loggerhead(node) {
    console.log("passhead"); 

    //also inject jquery
    var jqueryEl = document.createElement('script');
    jqueryEl.setAttribute('src', chrome.extension.getURL('jquery-1.11.1.min.js'));
    jqueryEl.setAttribute('type', 'text/javascript');

    var scriptEl = document.createElement('script');
    scriptEl.setAttribute('src', chrome.extension.getURL('script.js'));
    scriptEl.setAttribute('type', 'text/javascript');

    node.appendChild(jqueryEl);   
    node.appendChild(scriptEl); 
}


watchNodes("head", loggerhead);


// method not working
//var gmailHead = jQuery("head", document).get(0);
script.js包含订阅通过DOM检查器找到的按钮的单击事件的功能:

function Cdb(b){return function(){if(Vbb()){return Ddb(b,this,arguments)}else{var a=Ddb(b,this,arguments);a!=null&&(a=a.val);return a}}}

您应该尝试调用现有的click处理程序,如

buttonElement.click()

您是否在清单中提供了脚本(jQuery和script.js)作为
web\u可访问的\u资源
(请参阅)?是的,我已经将它们提供给了清单!这意味着
script.js包含订阅的功能是什么?您的意思是,
Cdb()
是在网页上单击按钮时调用的方法吗?那你为什么还要再注入这个方法呢?我想你是对的;我可能把事情搞糊涂了。因此,script.js代码是通过粘贴通过单击DominInspector中的EventListeners选项卡获得的文本获得的,是的,这是click按钮的事件处理程序的定义,但如果我没有将其放在那里,则添加
Cdb(b)给了我Cdb:方法未定义的错误。现在如果代码是:
functioncdb(b){returnfunction(){if(Vbb()){returnddb(b,this,arguments)}else{var a=Ddb(b,this,arguments);a!=null&(a=a.val);return a}}}Cdb(b)我得到b未定义错误,如果我修改
Cdb(b)带有
Cdb()它什么也不做。是否尝试调用现有的单击处理程序,如
按钮元素。单击()