到目前为止,我已经有了一个扩展程序,列出了用户所在的网页和一个按钮。单击该按钮时,应使用" 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; });
我尝试过使用:
$("#body").val("testing123");
document.getElementById('body').value = 'testing123';
但他们似乎没有工作。
答案 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';