[英]Chrome Extension - execute script not injecting in new tab
我无法执行脚本来工作。 我按照示例进行操作,无法执行任何操作。 我尝试编辑权限,并尝试注入console.log和settimeout。 我反复阅读了文档,不知所措。 我只是想插入一个输入用户名和密码的脚本,然后单击“登录”按钮。
var script = ' var e = document.getElementById("email"); var p = document.getElementById("password");'+
'e.value ="'+currentEmployee.email+'"; p.value = "'+currentEmployee.password+'";'+
'var osbut = document.getElementById("osLoginButton"); osbut.submit();';
chrome.tabs.create({
url: 'https://www.example.net/login'
}, function (tab) {
chrome.tabs.executeScript(tab.id, {
code: script
});
});
这是我的manifest.json
{
"name": "Example",
"description": "example",
"version": "1.0",
"manifest_version": 2,
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html",
"default_script": "popup.js",
"default_title": "example!"
},
"permissions": [
"activeTab",
"storage",
"http://*/",
"https://*/",
"tabs",
"*://www.example.net/*"
]
}
这就是我终于要工作的。 我需要的最大事情是该选项卡必须不处于活动状态。 多数民众赞成在搞砸一切。 新创建的选项卡阻止了弹出窗口继续执行功能。 这样就创建了新选项卡,即使有回调,弹出窗口也被销毁,因此没有要回调的内容。 希望这对使用新创建的选项卡的popup.js有所帮助。
chrome.tabs.create({
url: web, active: false
}, function (tab) {myTab = tab;
setTimeout(checkLoad, 2000);
}
)
}//end func
function checkLoad(){ console.log(web);
chrome.tabs.query({status: "complete", url: web }, function (tab) {
console.log(tab);
for(var i = 0; i < tab.length; i++){ if(tab[i].title =! undefined){setTimeout(pressure, 1000)}
else{setTimeout(checkLoad, 1000) }
}} )}
function pressure(){
var script = "var e = ''; var p = ''; var j = '';"+
'setTimeout(function(){'+
'var l = document.getElementsByTagName("input");'+
'console.log(l);for(var i = 0; i < l.length; i++){if (l[i].type == "email" || l[i].name == "email" || l[i].id == "email" || l[i].id.includes("user") ){ e = l[i]; console.log(e.name)};if (l[i].type == "password" || l[i].id == "password" || l[i].id.includes("pass") || l[i].name.includes("pass")){ p = l[i]; console.log(p.name)};if (l[i].type == "submit"){ j = l[i]; j.click(); }};'+
'e.focus();'+'e.value ="";'+
'e = document.execCommand("insertText", true,'+ '"'+currentEmployee.email+'");'+
'p.value = "";'+
'p.focus();'+
'p = document.execCommand("insertText", true, '+'"'+currentEmployee.password+'");'+
'}, 750);'+
'setTimeout(function(){j.click()}, 1000)';
chrome.tabs.executeScript(myTab.id, {allFrames : true, code : script})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.