javascript 应用脚本Google文档扩展选择了太多文本

fdbelqdn  于 2023-02-18  发布在  Java
关注(0)|答案(1)|浏览(75)

扩展的目的是抓取选中的文本并将其弹出到卡片搜索引擎中,然后将生成的网页作为所选文本的超链接返回。前半部分工作正常,但打印似乎选择了整个段落,而不仅仅是预期的选定区域。有修复此问题的方法吗?

function websiteCall() {
  const hostText = getSelectedText();
  const linkage = searchFunction(cleanName(hostText));
  if (linkage) {
    Logger.log(linkage);
    DocumentApp.getActiveDocument().getSelection().getRangeElements()[0].getElement().asText().editAsText().setLinkUrl(linkage);
  }
}

我最初在stackOverflow上问了一个类似的问题,这导致了最后的DocumentApp...行。然而,它有所描述的问题,由于我在工作中使用脚本的方式,我当时无法抓住它。

dz6r00yl

dz6r00yl1#

我相信你的目标如下。

  • 您要设置指向所选文本的超链接。该文本是段落的一部分。

在您的脚本中,使用了整个段落。并且,在您的脚本中,当文本未被选中时,会发生错误。在这种情况下,如何进行以下修改?

修改的脚本:

function websiteCall() {
  const hostText = getSelectedText();
  const linkage = searchFunction(cleanName(hostText));
  if (linkage) {
    Logger.log(linkage);
    const select = DocumentApp.getActiveDocument().getSelection();
    if (select) {
      const ele = select.getRangeElements()[0];
      ele.getElement().asText().editAsText().setLinkUrl(ele.getStartOffset(), ele.getEndOffsetInclusive(), linkage);
    }
  }
}
  • 当您选择段落的一部分文本并运行脚本时,超链接linkage将设置为所选文本。

参考文献:

相关问题