为什么在 Indesign 中关闭窗口不起作用

Why does closing a window in Indesign doesn't work?

本文关键字:窗口 不起作用 Indesign 为什么      更新时间:2023-09-26

我有一个关于 Indesign 脚本的问题。

为什么它会起作用,当您关闭类似这样的窗口时:

submitButton.onClick = function(){
    close();
}

但是当我之后尝试执行一个函数时,例如:

submitButton.onClick = function(){
    close();
    tagElements();
}

(注意我使用的是"with"标签,所以不需要window.close()

窗口没有关闭?我在这里忘记了什么吗?窗口不应该关闭,然后执行函数吗?

窗口初始化如下:

var de = new Window('dialog', 'Descriptions');

de.close()替换close()应该可以解决问题。这对我有用;

var de = new Window('dialog', 'Descriptions');
btn = de.add('button', undefined, 'close');  
btn.onClick = function() {  
    de.close();
    alert('foo');
}
de.show();

您可能需要在关闭后添加延迟(未尝试):

function pause(msec) { 
  var done = null; 
  var date = new Date(); 
  var curDate = null; 
  do curDate = new Date(); 
  while(curDate-date < msec); 
  var done = 1; 
  return done; 
} 
submitButton.onClick = function(){
    close();
    pause(500);
    tagElements();
}

您需要在代码中引用"打开"窗口。

submitButton.onClick = function(){
de.close();
tagElements();
}

应该工作

以下方法已经完成了:

with(de)
    submitButton.onClick = function(){
        close(1);
     }
}
if(de.show){
    tagElements();
}

de.show 将为真,当您在关闭函数中传递"1"时( 1 == true)。在关闭按钮上,您只需添加"close()",if语句将为假。