问题描述
在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");
}
请注意,此解决方案可能会迫使您仅将光标置于行的末尾,而不是选择段落的末尾。