施罗丁格的对象?

时间:2016-08-12 10:16:13

标签: adobe-indesign extendscript

我试图检查文档中是否存在对象(或图层)。 如果有一个名为x的pageItem,则此脚本有效。但如果没有,它就会失败。 (到目前为止一直很好)

奇怪的是:即使这个对象命名为" x" A不存在,A返回一个对象。如果我问它的名称,id,索引或脚本由于错误而停止的任何内容。

//Schroedinger's object
A=app.activeDocument.pageItems.itemByName("x")
$.writeln(A) //returns: [object PageItem]
$.writeln(A.id) //Error. doesn't exist

因此,请在InDesign中使用空白的新文档进行试用并运行该脚本。我不明白这种现象。

至少你可以用A.isValid验证它的存在(这就是我现在使用的,希望最好的)

1 个答案:

答案 0 :(得分:3)

你的方法是正确的。

.itemByName()总是返回一个PageItem对象(假设您传递了一些字符串作为参数)。但只有文档中存在相应的项目时,返回的对象才有效。您应该使用.isValid属性来验证返回的对象是否有效。