我试图弄清楚如何在右键单击输入字段(可编辑)时插入预定义字符串,通常我会使用文档通过 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
指的是背景页面本身.
看看架构概述 https://developer.chrome.com/extensions/overview#arch。完成后,您应该知道您需要一个内容脚本 https://developer.chrome.com/extensions/content_scripts.
一旦我们确定了这一点,您的内容脚本就可以独立跟踪点击发生的位置 https://stackoverflow.com/questions/7703697/how-to-retrieve-the-element-where-a-contextmenu-has-been-executed- 这将包含对该元素的引用。然后,当您的后台请求修改时,您就知道最后一个此类元素。
有一个很好的问题详细讨论您的问题 https://stackoverflow.com/questions/28055887/is-there-a-flexible-way-to-modify-the-contents-of-an-editable-element too.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)