繁体   English   中英

Chrome扩展程序-执行脚本未插入新标签页

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM