Chrome插件 - 右键菜单插入文本

4
我正在尝试弄清楚如何在右键单击输入字段(可编辑)时插入预定义字符串,通常我会使用文档getElementById。然而,由于我无法确定用户在任何网站上单击哪个元素,那么我该怎么做呢?
到目前为止,我有我的清单文件。
"permissions": [
    "contextMenus",
    "background",
    "https://ajax.googleapis.com/"
],

"background": {
    "scripts": ["scrippy.js"] 
}
}

我有所需的其他信息。
我的脚本文件。
// Create context menu and set to only on inputs
var type = ["editable"];
var scrippyMenu = chrome.contextMenus.create({"title": "Scrippy", 
"contexts": type});


// menu context
var menuContext = chrome.contextMenus.create({"title": "blabla", 
"parentId": scrippyMenu, "contexts": type});

var menuChild1 = chrome.contextMenus.create(
{"title": "time", "parentId": menuContext, "contexts": type, "onclick": 
genericOnClick});

function genericOnClick(info, tab) {

document.getElementById("Theunknownelement").textContent = 'This is added text';

}
1个回答

5
你有一个基本的误解:你的后台脚本无法修改网页,因为document指的是后台页面本身
看一下架构概述。看完之后,你应该知道你需要一个内容脚本
一旦我们确定了这一点,你的内容脚本就可以独立地跟踪点击发生的位置——这将包含对元素的引用。然后,当你的后台请求修改时,你就知道了最后一个这样的元素。
还有一个非常好的问题详细讨论了你的问题

嗨,谢谢你提供的链接和信息。我看了你在另一个答案中提供的例子,但是似乎仍然无法使它正常工作。我已更新了我的问题,你能帮忙看一下吗?我不是开发人员,只是根据在谷歌上找到的内容学习,所以任何帮助都将不胜感激! - octo-carrot
1
请看一下你的问题,再看我的回答。我的回答是否仍然回答了你的问题?不是的话,请不要在回答给出后对问题进行重大改写 - 请单独提出跟进问题。 - Xan
好的,我明白了你的意思,那我应该创建一个新问题吗?我不常使用这个网站。 - octo-carrot
是的,请创建一个新问题,包括此问题的链接。我会将您的问题回滚(或者您可以自己回滚),然后查看新问题。 - Xan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接