Malheureusement, ce n'est pas si simple. Si vous utilisez doc.characterStyles.item('foo')
il vous donnera encore un [object CharacterStyle]
. Même difficile, ça n'exsiste pas.
var doc = app.activeDocument;
$.writeln(doc.characterStyles.item('foo'));
// writes [object CharacterStyle] into the console
Ce que vous pouvez faire est d'utiliser un bloc try{}catch(error){}
et demander la propriété name
de cet objet. Dans ce cas, InDesign va lancer une erreur que vous pouvez attraper. Ensuite, vous pouvez revenir à un style de caractères par défaut [Aucun]
var doc = app.activeDocument;
try{
$.writeln(doc.characterStyles.item('foo').name);
}catch(e) {
$.writeln(e);
$.writeln(doc.characterStyles.item('[None]').name);
}
Edit: Comme mentionné par mdomino. Vous pouvez utiliser la propriété isValid
.
var doc = app.activeDocument;
if(doc.characterStyles.item('foo').isValid === true) {
$.writeln('doc.characterStyles.item(\'foo\') exists');
} else {
$.writeln('use doc.characterStyles.item(\'[None]\') because ');
var defaultStyle = doc.characterStyles.item('[None]');
$.writeln(defaultStyle.name + ' is ' + defaultStyle.isValid);
}
Nice a fonctionné parfaitement. Je vous remercie! – Interactive
Ou, si vous voulez éviter un 'try catch', vous pouvez aussi vérifier la propriété' doc.characterStlyes.item ("[Geen]"). IsValid'. – mdomino