Chrome插件 – Contextmenu插入文字
我试图弄清楚如何在右键单击输入字段(可编辑)时插入预定义的字符串,通常我将使用文件get元素id。 但是,由于我无法确定用户点击的元素,在任何网站上如何进行此操作?
到目前为止我有我的清单文件
"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'; }
您有一个基本的误解:您的后台脚本无法修改网页,因为document
是指背景页面本身 。
看一下架构概述 。 完成后,您应该知道需要内容脚本 。
一旦我们确定了这一点,您的内容脚本就可以独立跟踪点击发生的位置 – 并且包含对元素的引用。 然后,当您的后台请求修改时,您知道最后一个这样的元素。
还有一个非常好的问题,非常详细地讨论你的问题 。