在帖子的底部看到评论 - 我已经提出了部分解决方案
我尝试编写一个简单的JS脚本,强制用户在某些操作(特别是Save,SaveAs和Export)之前拼写检查其indesign文档。
基本上,我的问题是脚本正在运行,但它在事件发生后运行。例如,在SaveAs
上,事件运行,保存文档,然后触发函数。
我以为我以前需要某种方式。禁止,但我无法弄清楚。
到目前为止,这是我的代码:
#target indesign
#targetengine "session"
main();
function main(){
alert('Hello 8');
var myBeforeSaveEvList = app.addEventListener("beforeSave", checkSpelling, false);
var myBeforeSaveAsEvList = app.addEventListener("beforeSaveAs", checkSpelling, false);
var myBeforeExportEvList = app.addEventListener("beforeExport", checkSpelling, false);
//var myAfterSaveEvList = app.addEventListener("afterSave", myAfterSaveHandler, false);
function checkSpelling(myEvent){
alert('Before Save...');
app.menuActions.item("Check Spelling...").invoke();
}
}
答案 0 :(得分:0)
我设法提出了部分解决方案,但现在我遇到了另一个问题。
我通过名字调用了这些动作并添加了一个“之前的内容”。事件监听器。这允许CheckSpelling函数在事件运行之前运行。
问题是在检查拼写弹出后立即弹出保存/导出对话框,从不允许用户在保存/导出之前实际检查拼写。
我想我需要编写一些代码来防止弹出对话框,直到拼写检查完成,但我不知道从哪里开始。
新代码:
main();
function main(){
alert('Hello 12');
//app.addEventListener( "beforeExport", chSpelling );
//app.addEventListener( "beforeSave", chSpelling );
//app.addEventListener( "beforeSaveAs", chSpelling );
var
//beforeSave = app.menuActions.itemByID ( 260 ).addEventListener ( "beforeInvoke", checkSpelling );
//beforeSaveAs = app.menuActions.itemByID ( 261 ).addEventListener ( "beforeInvoke", checkSpelling );
//beforeSaveAsCopy = app.menuActions.itemByID ( 262 ).addEventListener ( "beforeInvoke", checkSpelling );
//beforeExport = app.menuActions.itemByID ( 113411 ).addEventListener ( "beforeInvoke", checkSpelling );
beforeSave = app.menuActions.itemByName ( "$ID/Save" ).addEventListener ( "beforeInvoke", checkSpelling );
beforeSaveAs = app.menuActions.itemByName ( "$ID/Save As..." ).addEventListener ( "beforeInvoke", checkSpelling );
beforeSaveACopy = app.menuActions.itemByName ( "$ID/Save a Copy..." ).addEventListener ( "beforeInvoke", checkSpelling );
beforeExport = app.menuActions.itemByName ( "$ID/Export..." ).addEventListener ( "beforeInvoke", checkSpelling );
function checkSpelling(myEvent){
alert('Check Spelling...');
app.menuActions.item("Check Spelling...").invoke();
}
}