Indesign без тегов кадров с помощью JavaScript
Я пытаюсь просмотреть все фреймы в моем документе и определить, были ли они помечены тегом "copy". Если это так, я хочу создать структуру XML и удалить связанный с ней тег копирования. Это работало до вчерашнего дня. Я проснулся, и он начал говорить: "myTextFrames[i].untag - это не функция. Я потратил несколько часов, пытаясь понять, почему, а я не могу. Я надеялся, что у вас, ребята, были какие-то идеи. Спасибо! -Натан
var myTextFrames = app.activeDocument.textFrames;
var myTextFramesNo = myTextFrames.length;
for (i = 0; i < myTextFramesNo; i++)
{
if (myTextFrames[i].properties.associatedXMLElement.markupTag.name == "copy")
{
//create structure
myTextFrames[i].untag();
}
}
1 ответ
Это связано с тем, что untag - это метод объекта XMLElement, а не объект pageItem, например текстовый фрейм.
var myTextFrames = app.activeDocument.textFrames;
var i = myTextFrames.length;
while (i--)
{
if (myTextFrames[i].properties.associatedXMLElement instanceof XMLElement
&& myTextFrames[i].associatedXMLElement.markupTag.name == "copy")
{
//create structure
myTextFrames[i].associatedXMLElement.untag();
}
}
IU также порекомендовал бы зацикливаться в обратном направлении каждый раз, когда вы удаляете или отменяете вещи;)