Chrome扩展程序:填写文本字段

时间:2017-03-21 15:34:19

标签: 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_action": {
   "default_icon": "icon.png",
   "default_popup": "popup.html"
 },
"content_scripts": [
       {
           "matches": ["https://www.facebook.com/*"],
           "js": ["popup.js"]
       }
     ]
}

弹出。 html文件

<button id="buttonSet">Set Value</button> 
   <script type="text/javascript" src="popup.js"></script>

popup.js

function setValue() {

var name ="username";
var pass = "password";
document.getElementById('username').value =name;
document.getElementById('pass').value =pass;
}
document.getElementById('buttonSet').addEventListener('click', setValue);

我从互联网上获得了所有代码,而且我之前没有任何使用Google扩展程序的经验 我用Google搜索了很多次来解决这个问题我找不到任何解决这个问题的方法

1 个答案:

答案 0 :(得分:0)

我希望我理解你。您可以在内容脚本与popup.html(myscript.js)中运行的脚本之间使用message passing

的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"]
                      }
                    ]
 }

popup.html。

<script type="text/javascript" src="myscript.js"></script>
<button id="buttonSet">Set Value</button> 
<input type="text" id="username">
<input type="text" id="pass">

popup.js

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;

});

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向内容脚本选项卡发送消息。这是我发送到所有标签消息的示例,直到找到等待消息的消息。 在结果中,第一个输入将显示“用户名”,您也可以为第二个参数执行此操作。

祝你好运。