#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;
}