Javascript Chrome扩展:填充文本字段

Javascript Chrome扩展:填充文本字段,javascript,html,json,google-chrome,google-chrome-extension,Javascript,Html,Json,Google Chrome,Google Chrome Extension,我的分机应该自动填写我的gmail用户名和密码,但它不工作 manifest.json { "manifest_version": 2, "name": "Click to execute", "description": "Akshaya app", "version": "1.0", "icons": { "48": "icon.png" }, "permissions": [ "tabs", "<all_urls>" ], "browser_act

我的分机应该自动填写我的gmail用户名和密码,但它不工作

manifest.json

{
 "manifest_version": 2,
 "name": "Click to execute",
 "description": "Akshaya app",
 "version": "1.0",
 "icons": {
   "48": "icon.png"
 },
 "permissions": [
   "tabs", "<all_urls>"
 ],
 "browser_action": {
   "default_icon": "icon.png",
   "default_popup": "popup.html"
 },
"content_scripts": [
       {
           "matches": ["https://www.facebook.com/*"],
           "js": ["popup.js"]
       }
     ]
}
{
 "manifest_version": 2,
 "name": "Click to execute",
 "description": "Akshaya app",
 "version": "1.0",
 "icons": {
           "48": "icon.png"
           },
 "permissions": [
                 "tabs", "<all_urls>"
                ],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
                  },
"content_scripts": [
                      {
                       "matches": ["https://www.facebook.com/*"],
                       "js": ["popup.js"]
                      }
                    ]
 }
我从互联网上获得了所有的代码,而且我以前没有任何使用谷歌扩展的经验
为了解决这个问题,我在谷歌上搜索了很多次。我找不到任何解决这个问题的方法。我希望我对你的理解是正确的。您可以在内容脚本和在popup.htmlmyscript.js中运行的脚本之间使用:

manifest.json

{
 "manifest_version": 2,
 "name": "Click to execute",
 "description": "Akshaya app",
 "version": "1.0",
 "icons": {
   "48": "icon.png"
 },
 "permissions": [
   "tabs", "<all_urls>"
 ],
 "browser_action": {
   "default_icon": "icon.png",
   "default_popup": "popup.html"
 },
"content_scripts": [
       {
           "matches": ["https://www.facebook.com/*"],
           "js": ["popup.js"]
       }
     ]
}
{
 "manifest_version": 2,
 "name": "Click to execute",
 "description": "Akshaya app",
 "version": "1.0",
 "icons": {
           "48": "icon.png"
           },
 "permissions": [
                 "tabs", "<all_urls>"
                ],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
                  },
"content_scripts": [
                      {
                       "matches": ["https://www.facebook.com/*"],
                       "js": ["popup.js"]
                      }
                    ]
 }
myscript.js

window.onload=function(){

 document.getElementById('buttonSet').addEventListener('click',function(){

 chrome.tabs.query({}, function(tabs) {
 for(var i = 0; i < tabs.length; i++) {
  chrome.tabs.sendMessage(tabs[i].id, {user :document.getElementById('username').value,
                                     pass :document.getElementById('pass').value}, function(response) {
        });
 }
 }); 

 });

 }
在myscript.js中,您需要通过内容脚本选项卡的ID向其发送消息。这里是一个示例,我向所有选项卡发送消息,直到找到等待消息的选项卡。 在结果的末尾,第一个输入将显示“username”,您也可以对第二个参数执行此操作


祝你好运。

请务必填写我的gmail用户名和密码。但是这个领域在哪里?您是要填写Facebook用户和密码字段,还是在popup.html中有字段?请检查js文档。getElementById'username'。value=name;对不起,我听不懂。“用户名”和“通行证”在popup.html中?您只想在其中输入值吗?或者在哪里?不清楚。我建议你阅读这篇文章,也许还可以阅读概述中的链接页面。具有总体架构信息,这将有助于您了解事物通常是如何组织/完成的。您可能还想阅读和。除了库之外,您几乎不应该使用同一脚本,因为manifest.json中包含多种类型的脚本,例如内容脚本、背景脚本、弹出窗口中包含的脚本等。。您几乎应该始终为其中每一项使用单独的脚本文件。未知事件处理程序中的错误:TypeError:无法在ifresponse.response处读取undefined的属性“response”=undefinedsir此处未定义响应类型。因此response.response中没有任何值我测试它-你的facebook.com页面需要打开,然后单击“设置值”按钮,然后第一个文本字段将填写文本“用户名”。对“未定义”的检查已完成,因为我们将其发送到所有打开的选项卡,而facebook仅返回一个值,因为“facebook.com”位于您清单中的“匹配”下,并且就在那里,此脚本正在注入我使用您的清单:{manifest_version:2,name:Click to execute,description:Akshaya app,version:1.0,icons:{48:icon.png},权限:[tabs,*],js:[popup.js]}]}我没有编辑任何内容,只是复制和粘贴了,但是现在manifest.json文件出现了一个问题,“content_scripts[0]的无效值。匹配项[0]”:缺少方案分隔符
chrome.runtime.onMessage.addListener(function(request, sender,   sendResponse) { 
     //Take the fields of user and password from the DOM of facebook log-in page 
     document.getElementById('email').value=request.user;
     document.getElementById('pass').value=request.pass;

});
window.onload=function(){

 document.getElementById('buttonSet').addEventListener('click',function(){

 chrome.tabs.query({}, function(tabs) {
 for(var i = 0; i < tabs.length; i++) {
  chrome.tabs.sendMessage(tabs[i].id, {user :document.getElementById('username').value,
                                     pass :document.getElementById('pass').value}, function(response) {
        });
 }
 }); 

 });

 }