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