Indesign javascript ERROR: MODAL DIALOG OR ALERT IS ACTIVE adobe extendscript toolkit
Indesign javascript ERROR: MODAL DIALOG OR ALERT IS ACTIVE adobe extendscript toolkit
我尝试通过 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;
}
错误发生,因为带有按钮的window仍然是打开的。即便如此,文档也无法更改。
要使其正常工作,您可以使用按钮关闭 window,然后让主要功能 运行 紧随其后:
#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.
}
请注意,通常情况下,您会同时向 window 添加 OK
和 Cancel
按钮,然后根据用户按下哪个按钮,您将执行或不执行您的功能.
如果您需要让 window 保持打开状态(尽管在您给出的示例中我看不出这有什么意义),您需要创建一个 window类型 palette
而不是 dialog
。在这种情况下,您还必须创建一个目标引擎,否则 window 将不会显示:
#targetengine session
w = new Window('palette');
// ... and so on
我尝试通过 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;
}
错误发生,因为带有按钮的window仍然是打开的。即便如此,文档也无法更改。
要使其正常工作,您可以使用按钮关闭 window,然后让主要功能 运行 紧随其后:
#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.
}
请注意,通常情况下,您会同时向 window 添加 OK
和 Cancel
按钮,然后根据用户按下哪个按钮,您将执行或不执行您的功能.
如果您需要让 window 保持打开状态(尽管在您给出的示例中我看不出这有什么意义),您需要创建一个 window类型 palette
而不是 dialog
。在这种情况下,您还必须创建一个目标引擎,否则 window 将不会显示:
#targetengine session
w = new Window('palette');
// ... and so on