Mû par de folles intuitions, j'avais rêvé que cet état fantomatique nous offrirait un moyen inédit de contrôler via un style de caractère — et donc potentiellement via un style Grep — la visibilité de certains objets ancrés. Mais InDesign s'est révélé incapable d'actualiser « en live » les éléments que j'avais ainsi assujettis à une règle Grep.

Cela étant, il n'est pas inutile de s'arrêter quelques instants sur ce phénomène. Un objet fantôme n'est pas réellement supprimé de la mise en page (bien qu'on ne le voie plus). En fait, il reste valide et accessible depuis votre script InDesign, et la plupart de ses propriétés et méthodes semblent encore opérationnelles. Par contre, toutes les commandes à caractère géométrique, telles que ghost.geometricBounds, ghost.paths[0].entirePath, etc., sont inaccessibles et provoqueront immanquablement une erreur d'exécution.

Par conséquent, il peut devenir crucial de détecter cet état pernicieux des objets ancrés ou incorporés. Pour identifier un élément fantôme sans lancer une commande désespérée dans un try-catch, une solution simple consiste à déterminer si le caractère parent—le point d'ancrage—se situe dans une région en excès. Ce qui revient à tester l'existence d'un bloc-texte parent à ce niveau :

var isGhost = (myItem.parent instanceof Character) &&
    !myItem.parent.parentTextFrames.length;
 

Un ridicule bout de code, mais qui peut rendre quelques services…