Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么在Indesign中关闭窗口不';不行?_Javascript_Adobe Indesign - Fatal编程技术网

Javascript 为什么在Indesign中关闭窗口不';不行?

Javascript 为什么在Indesign中关闭窗口不';不行?,javascript,adobe-indesign,Javascript,Adobe Indesign,我有一个关于Indesign脚本的问题 当你关闭一个窗口时,它为什么起作用 submitButton.onClick = function(){ close(); } 但当我尝试在之后执行一个函数时,比如: submitButton.onClick = function(){ close(); tagElements(); } (注意我使用的是“with”标记,因此不需要window.close()) 窗户关不上?我是不是忘了什么?窗口不应该关闭,然后执行函数吗 窗口

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

当你关闭一个窗口时,它为什么起作用

submitButton.onClick = function(){
    close();
}
但当我尝试在之后执行一个函数时,比如:

submitButton.onClick = function(){
    close();
    tagElements();
}
(注意我使用的是“with”标记,因此不需要
window.close()

窗户关不上?我是不是忘了什么?窗口不应该关闭,然后执行函数吗

窗口初始化如下:

var de = new Window('dialog', 'Descriptions');
close()
替换为
de.close()
应该可以做到这一点。这对我有用

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

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

函数暂停(毫秒){
var done=null;
变量日期=新日期();
var curDate=null;
do curDate=新日期();
而(当前日期<毫秒);
var done=1;
已完成的返回;
} 
submitButton.onClick=函数(){
close();
暂停(500);
标记元素();
}

您需要代码中已打开窗口的引用

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

应该有效的,以下几点已经成功了:

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

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

它应该可以工作。您是否也可以链接包含函数
tagElements()的代码?函数是否执行
tagElements()如果仅在单击按钮时执行该功能,则该功能不起作用,因为在indesign中打开对话框时无法执行功能。因此,必须首先关闭对话框。这个问题似乎不容易复制,部分原因是分散的代码片段。例如,在显示的代码中没有带
(您说您使用了它,但可能您使用的是错误的!)。你能添加一个仍然有问题的单曲吗?@Frederik Witte:你试过我的答案吗?正如你在我的帖子中看到的,我使用的是“with”标签。无需“de”引用。因为你可以在我的帖子中看到,我使用的是“with”标签。无“de”参考needed@Frederik:使用(de)
移动
中的所有内容并移除
中的de.
后,此操作仍然有效。这不适合你吗?不。请定义“工作”。当警报弹出时,对话框窗口是否仍显示?因为这是这里的问题,所以您可以用
语句显示完整的代码,包括
with(de)
    submitButton.onClick = function(){
        close(1);
     }
}
if(de.show){
    tagElements();
}