不幸的是並不那麼容易。如果您使用doc.characterStyles.item('foo')
它仍然會給你一個[object CharacterStyle]
。即使艱難,它也不存在。
var doc = app.activeDocument;
$.writeln(doc.characterStyles.item('foo'));
// writes [object CharacterStyle] into the console
你可以做的是使用一個try{}catch(error){}
塊,並要求該對象的name
財產。在這種情況下,InDesign會拋出一個您可以捕獲的錯誤。然後你就可以回落到默認的字符樣式[無]
var doc = app.activeDocument;
try{
$.writeln(doc.characterStyles.item('foo').name);
}catch(e) {
$.writeln(e);
$.writeln(doc.characterStyles.item('[None]').name);
}
編輯:正如mdomino提及。您可以使用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);
}
尼斯工作完美。謝謝! – Interactive
或者,如果你想避免'try catch',你可以選擇'doc.characterStlyes.item(「[Geen]」)。isValid'屬性。 – mdomino