При попытке вставить текст, как мне найти документ, в котором находится конкретный объект?

#javascript #extendscript #framemaker

Вопрос:

У меня есть объект ячейки, и я хотел бы добавить к нему текст. Я пытаюсь позвонить doc.AddText(textLoc, 'cell text'); , но у меня нет doc объекта, у меня есть только cell объект.

 function setCellText(cell, text) {
    // Create a text location at the beginning of the cell
    var textLoc = new TextLoc();
    textLoc.obj = cell;
    textLoc.offset = 0;

    // Delete all the paragraphs after the first (new) paragraph
    while (cell.FirstPgf.id != cell.LastPgf.id) {
        cell.LastPgf.Delete();
    }
    cell.LastPgf.Delete();

    // Write the specified cell value to the text location
    doc.AddText(textLoc, text);    // <== !! How do I get the doc for the current cell?
}
 

Вместо того, чтобы добавлять doc параметр к каждой функции в вызове statck, я хотел бы иметь возможность определять значение doc из самой ячейки. У меня есть код, который будет искать страницу, на которой находится объект, но я не мог понять, как добраться до родительского документа где-либо по пути.

На более высоком уровне существует ли альтернативный/лучший способ добавления текста в ячейку, чем doc.AddText ? Я подозреваю, что нет, но на всякий случай.

Для справки, вот функция для получения страницы:

 fucntion getDoc(obj) {
    // ???
}

function getPage(obj) {

    if (obj.PageFramePage != undefined amp;amp; obj.PageFramePage.ObjectValid())
        return obj.PageFramePage;

    if (obj.FrameParent != undefined amp;amp; obj.FrameParent.ObjectValid())
        return obj.FrameParent.getPage();

    if (obj.InTextFrame != undefined amp;amp; obj.InTextFrame.ObjectValid())
        return obj.InTextFrame.getPage();

    if (obj.TextLoc != undefined amp;amp; obj.TextLoc != null)
        return obj.TextLoc.obj.getPage();

    return null;
}