[英]OR operator in extendscript
我正在InDesign上創建一些腳本來加速該過程。
我創建了一個腳本,我認為該腳本可以在某些行上起作用,但是InDesign對此表示不同意。
它失敗("Geen"||"None");
在下面的
app.changeGrepPreferences.appliedCharacterStyle = myDoc.characterStyles.item("[Geen]"||"[None]");
我希望它可以更改為characterStyle [Geen]
或[None]
。 取決於預定義字符樣式中的可用內容。
我究竟做錯了什么? 這似乎有點基本。
不幸的是並不是那么容易。 如果您使用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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.