簡體   English   中英

擴展腳本中的OR運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM