我试图为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;
});
}
我的工作文档来自于 火狐 创建菜单的文件和 点击数据(=信息). 这里的文档说。
targetElementI integer.如果有的话,是创建上下文菜单的元素的标识符。如果有的话,是创建上下文菜单的元素的标识符。在内容脚本中使用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。在这里,我已经上传了整个background.js
我希望你知道为什么它没有工作的文件和我错了......
谢谢你的帮助和时间提前:)