2014-11-14 7 views
4

Indesign 스크립트와 관련하여 질문이 있습니다.Indesign에서 창 닫기가 작동하지 않는 이유는 무엇입니까?

이 같은 창 닫을 때 왜 작동 않습니다

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

(I가 "와"사용하고 있습니다 :

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

를하지만처럼 나중에 기능을 실행하려고 할 때 태그가 없으므로 window.close() 필요)

창이 닫히지 않습니까? 나는 여기서 뭔가 잊고 있니? 창을 닫지 말고 함수를 실행해야합니까?

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

정상 작동합니다. 당신은 또한 함수'tagElements();에 대한 코드를 링크 할 수 있습니까? 버튼을 클릭 할 때만 해당 함수를 실행하면 'tagElements();'함수가 작동합니까? – user25312

+1

indesign에서 대화 상자가 열리는 동안 함수를 실행할 수 없으므로 그렇지 않습니다. 대화가 먼저 닫혀 야합니다. –

+0

일부 코드 조각이 흩어져서 문제가 쉽게 복제되지 않는 것 같습니다. 예를 들어, 표시된 코드에는'with '가 없습니다. (당신이 사용한다고 말하면, 틀리게 사용하고있을 것입니다!). 여전히 문제가있는 하나의 [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)을 추가 할 수 있습니까? – usr2564301

답변

0

다음은 트릭을 수행 한 다음 당신은 가까운 기능에 '1'을 통과 할 때

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

de.show는, 사실됩니다 (1 == TRUE) . 닫기 버튼에서 'close()'를 추가하면 if 문은 false가됩니다.

1

트릭을 할해야 de.close()close() 교체 :

처럼 초기화됩니다. 이것은 나를 위해 일합니다.

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

내 글에서 읽을 수 있듯이 "with"태그를 사용하고 있습니다. "de"참조가 필요 없습니다. –

+0

@Frederik : 내부에있는 모든 것을'with (de)'로 옮긴 후'de.' 내부를 제거한 후에도 여전히 작동합니다. 너를 위해서 아닌가? – usr2564301

+0

번호 "일하는"것을 정의하십시오. 경고가 나타나면 대화 상자 창이 계속 표시됩니까? 이것이 여기에서 문제이기 때문에 –

0

당신은 폐쇄 (시도하지) 후 지연을 추가 할 수 있습니다 :

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(); 
} 
0

당신은 코드에서 열린 창에 대한 참조가 필요합니다.

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

작동합니다

+0

내 글에서 읽을 수 있듯이 "with"태그를 사용하고 있습니다. "de"참조가 필요하지 않습니다. –

+0

JSfiddle에서 코드를 구현할 수 있습니까? – Dhanilan