如何获取Google文档中行尾字符的位置

问题描述

在Google文档加载项快速入门中,有一种很棒的方法可在文档中的任何位置插入文本。它可以很好地进行选择以及在光标处插入,但是当您在文档中任何一行的末尾“选择”“字符”时,都会出现问题。

它实际上并没有选择任何内容(或者至少从文档的getSelection()方法未返回任何内容),但是当我尝试通过文档的getCursor()方法获得位置时,该方法也返回了null ,因此我没有参考框架可知道文档上的位置。

Here's an image to show what I mean。注意,不是选择空格键。您可以在Google文档中任意行的末尾进行选择。另外,请注意错误,表明没有位置可以使用getSurroundingText(),因为getCursor()方法返回了null

我需要在该选择之前插入文本的位置,所以我将如何获得该位置(如果可能的话)?

解决方法

来自docs

用户选择的表示形式;如果用户在文档中没有选择任何内容,则仅选择段落的末尾,仅选择段落的末尾和换行,或者如果该脚本未绑定到文档。

您在文档所指的“段落结尾”中选择的那一部分,因此它返回的是null,与定义的完全相同。

我会考虑使用getCursor来返回Position,然后将其用于insertText

var document = DocumentApp.getActiveDocument();
var position = document.getCursor();

if (position !== null) {
    position.insertText("lorem ipsum");
}

请注意,此解决方案可能会迫使您仅将光标置于行的末尾,而不是选择段落的末尾。