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 также порекомендовал бы зацикливаться в обратном направлении каждый раз, когда вы удаляете или отменяете вещи;)

Другие вопросы по тегам