如何从Chrome扩展程序填写网页表单中的文本字段?

时间:2014-08-03 17:28:44

标签: javascript jquery html css google-chrome

到目前为止,我已经有了一个扩展程序,列出了用户所在的网页和一个按钮。单击该按钮时,应使用" testing123"填写文本字段。

在我测试的网页上,表单上有一个id和名称" form"并且文本字段具有id和名称" body"。

如果我能获得一些填写此文本字段或一般文本字段的帮助,我们将不胜感激。

以下是我目前的文件:

的manifest.json


    {
      "name": "Extension Menu",
      "version": "1.0",
      "manifest_version": 2,
      "description": "My extension",
      "browser_action": {
        "default_icon": "icon.png",
        "default_menu": "Menu",
        "default_popup": "popup.html"
      },
      "icons": {
        "128": "icon.png"
      },
      "permissions": [
          "tabs", "http://*/*", "activeTab"
        ]
    }

popup.html

<p id="currentLink">Loading ...</p>
<hr />
<ul id="savedLinks"></ul>
<script type="text/javascript" src="popup.js"></script><br>
<button type="button" onclick="fill in text box with the word 'testing123'">Go!</button>

popup.js


    chrome.tabs.getSelected(null, function(tab) {
      // $("#body").val("testing123");
      // document.getElementById('body').value = 'testing123';
      document.getElementById('currentLink').innerHTML = tab.url;
    });

我尝试过使用:

  1. $("#body").val("testing123");

  2. document.getElementById('body').value = 'testing123';

  3. 但他们似乎没有工作。

1 个答案:

答案 0 :(得分:1)

您无法直接从popup访问该网页。您应该使用content scripts来执行此操作。 Content scripts在网页的上下文中运行。

将此添加到您的清单:

"content_scripts": [
        {
            "matches": [
                "http://www.example.com/*"
            ],
            "js": [
                "jquery.js",
                "myscript.js"
            ]
        },

myscript.js

$("#body").val("testing123");

document.getElementById('body').value = 'testing123';