我尝试通过indesign运行我的javascript代码,但出现错误:模态对话框或警报处于活动状态。
谁知道如何解决这个问题?
#target "InDesign"
w = new Window ('dialog');
magicButton = w.add ("button", undefined, "Buttton");
magicButton.onClick = main
w.show ();
function main(){
var myDocument = app.activeDocument
myDocument.viewPreferences.horizontalMeasurementUnits =
MeasurementUnits.PIXELS;
myDocument.viewPreferences.verticalMeasurementUnits =
MeasurementUnits.PIXELS;
}
发生错误,因为带有按钮的窗口仍处于打开状态。并且在这种情况下,无法更改文档。
要使其正常工作,您可以使用按钮来关闭窗口,然后让主函数立即运行:
#target "InDesign"
w = new Window('dialog');
magicButton = w.add ("button", undefined, "Buttton");
magicButton.onClick = function() {
w.close();
}
w.show();
main();
function main(){
// ... do stuff with the document etc.
}
注意,通常情况下,您会同时在窗口中同时添加OK
和Cancel
按钮,然后根据用户按下的按钮执行或不执行功能。
[如果需要保持窗口打开状态(虽然在给出的示例中我看不到这有什么意义),您将无需创建palette
而不是dialog
类型的窗口。在这种情况下,您还必须创建一个目标引擎,否则该窗口将不会显示:
#targetengine session
w = new Window('palette');
// ... and so on