Я пытаюсь получить положение различных элементов Range в документе Google. Но результат всегда -1.
Что я сделал: я поместил каждый заголовок моего документа в свой собственный rangeElement, так что он имеет свой собственный идентификатор. С этим идентификатором я хочу получить содержимое и позицию позже в другой функции.
var doc = DocumentApp.getActiveDocument();
var paragraphs = doc.getBody().getParagraphs();
for (var i = 0; i < paragraphs.length; i++) {
if (paragraphs[i].getType() == DocumentApp.ElementType.PARAGRAPH) {
var heading = paragraphs[i].asParagraph().getHeading();
//get only headings
if (heading == DocumentApp.ParagraphHeading.HEADING1) {
var title = paragraphs[i].asParagraph().asText().getText();
if (title != "") {
//put every headings into its own range, so it has its own id
var rangeBuilder = doc.newRange().addElement(paragraphs[i]);
var id = doc.addNamedRange('toc', rangeBuilder.build()).getId();
// check offset and text of the rangeElement
var offset = doc.getNamedRangeById(id).getRange().getRangeElements()[0].getStartOffset();
var text = doc.getNamedRangeById(id).getRange().getRangeElements()[0].getStartOffset();
}
}
В этом примере выводом text
всегда является правильный заголовок. Таким образом, содержание rangeElement представляется правильным. Но вывод offset
всегда равен -1.
Я хочу сделать следующее:
doc.setCursor(doc.newPosition(rangeElement.getElement(), rangeElement.getStartOffset()));
Но это не работает с StartOffset -1.