我正在开发一个WebExtension,其中一个功能是在可编辑字段上有一个上下文菜单项,选中后会打开一个确认窗口,然后将一个值粘贴到可编辑字段中。
目前我有上下文菜单项,它打开了窗口,但是将一些文本插入到可编辑字段中证明是棘手的。我到目前为止最接近的是:
MyLayoutManager
整个let code = 'setTimeout(function() {document.designMode = "on";document.execCommand("insertText", false, "apple");document.designMode = "off";}, 1000);';
browser.tabs.executeScript(parent_tab_id, {"code": code});
window.close()
似乎有点奇怪,代码不能很可靠地工作。有一个更好的方法吗?问题的根源是,我没有找到任何方法来查找被点击的可编辑字段。
答案 0 :(得分:0)
我会这样做:
let code = 'document.activeElement.value = "apple";';
browser.tabs.executeScript(parent_tab_id, {"code": code});
顺便说一句,后台脚本中的window.close是browser.tabs.remove(currentTabId)。您可以通过查询选项卡API(示例2)获取当前选项卡ID:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/query#examples