代码之家  ›  专栏  ›  技术社区  ›  Sam Bull

将文本从web扩展插件插入可编辑字段

  •  0
  • Sam Bull  · 技术社区  · 7 年前

    我正在开发一个WebExtension,其中一个功能是在可编辑字段上有一个上下文菜单项,选中该项后,将打开一个确认窗口,然后将一个值粘贴到可编辑字段中。

    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()
    

    designMode 事情似乎有点奇怪,代码工作得不太可靠。有更好的方法吗?问题的根源是,我找不到任何方法来找到单击的可编辑字段。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Smile4ever    7 年前

    我会这样做:

    let code = 'document.activeElement.value = "apple";';
    browser.tabs.executeScript(parent_tab_id, {"code": code});
    

    顺便说一句,窗户。在背景脚本中关闭的是浏览器。选项卡。删除(currentTabId)。您可以通过查询选项卡API获得当前选项卡id(示例2): https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/query#examples