【发布时间】:2020-05-01 20:04:56
【问题描述】:
我正在尝试为 Firefox 创建一个附加组件,它使我能够从基于 REST 的服务器输入密码到输入字段。
为了实现这一点,我在 Firefox 的插件中添加了上下文菜单。
这些上下文菜单的监听器实现如下:
add_listener(menu_id, listener) {
const click_listener = function(info, tab) {
if ('' + info.menuItemId == menu_id + '') {
console.debug(info.targetElementId);
listener(browser.menus.getTargetElement(info.targetElementId));
}
};
this.listeners.push(click_listener);
browser.contextMenus.onClicked.addListener(click_listener);
}
for (const pwDataEntry of pwDataSet.entries) {
const entryId = menu_service.create_sub_menu(null, pwDataEntry.key, setId);
menu_service.add_listener(entryId, element => {
console.debug(element);
element.value = pwDataEntry.content;
});
}
我正在处理来自Firefox 的用于创建菜单的文档和ClickData (=info) 的文档。这里的文档说:
目标元素I 整数。创建上下文菜单的元素的标识符(如果有)。在内容脚本中使用 menus.getTargetElement() 来定位元素。请注意,这不是页面元素的 id 属性。
如您所见,我已经完全按照文档说明实现了元素的检索。 事情是 Firefox 告诉我,它没有找到该元素:
3056573 background.js:32:25
null background.js:120:29
element is null background.js:121
background.js:32:25 -> console.debug(info.targetElementId);
background.js:120:29 -> console.debug(element);
background.js:121 -> element.value = pwDataEntry.content;
如果您需要有关代码的更多信息,我已经上传了整个 background.js here
我希望你知道为什么它没有按文档说明工作以及我哪里出错了......
提前感谢您的帮助和时间:)
【问题讨论】:
标签: javascript html firefox firefox-addon-sdk