我还在使用我的第一个Chrome扩展程序,而且我已经碰壁了。我尝试使用document.activeElement.value
在文本字段中插入一些文字。
我根本无法工作。我已经使用过很多人的大量例子,而且还没有让它发挥作用。
这是我的background.js
中的代码,扩展程序使用该代码创建上下文菜单并插入文本。我此时假设我的onClickHandler
或点击事件有问题,但我不知所措。
chrome.runtime.onInstalled.addListener(function() {
var context = "all";
var title = "Test";
var id = chrome.contextMenus.create({"title": title, "contexts":[context],
"id": "context" + context});
});
// add click event
chrome.contextMenus.onClicked.addListener(onClickHandler);
//The onClicked callback function.
function onClickHandler() {
document.activeElement.value = 'some text';
}
答案 0 :(得分:0)
好的,你需要一些背景知识。
首先,您在后台页面中执行代码;因此,document
指的是背景页面本身。
请花一点时间阅读Architecture Overview(如果您开始使用,可能会在页面的其他部分开始,这会非常有帮助。)
如果你读到它,你应该明白你需要一个内容脚本。在活动标签中injected(以及the "activeTab"
permission应该足以通过点击处理程序执行此操作)后,您可以访问正确的document
。
然而,这项任务比你想象的要复杂得多。最近有一个关于这个主题的讨论;有关详细信息,请参阅this question。