Chrome 插件 - 上下文菜单插入文本

oct*_*rot 4 javascript jquery google-chrome google-chrome-extension

我试图弄清楚如何在右键单击输入字段(可编辑)时插入预定义的字符串,通常我会通过 id 使用文档获取元素。但是,由于我无法确定用户点击了什么元素,在任何网站上我该如何去做呢?

到目前为止我有我的清单文件

"permissions": [
    "contextMenus",
    "background",
    "https://ajax.googleapis.com/"
],

"background": {
    "scripts": ["scrippy.js"] 
}
}
Run Code Online (Sandbox Code Playgroud)

(我也有其他所需的信息。)

还有我的脚本文件

// 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';

}
Run Code Online (Sandbox Code Playgroud)

Xan*_*Xan 5

你有一个根本的误解:你的后台脚本不能修改网页,因为document是指后台页面本身

看一看体系结构概述。完成后,您应该知道您需要一个Content Script

一旦我们确定了这一点,您的内容脚本就可以独立地跟踪点击发生的位置——这将包含对元素的引用。然后,当您的后台请求修改时,您知道最后一个这样的元素。

有一个非常好的问题也非常详细地讨论了您的问题