Невозможно обработать запрос, потому что активен модальный диалог или предупреждение

Я почти закончил проект ExtendScript для Adobe InDesign CS6. Одна из последних ошибок, которые мне нужно исправить, выражается в следующем сообщении об ошибке:

Невозможно обработать запрос, потому что активен модальный диалог или предупреждение

В сценарии происходит то, что он открывает файл InDesign, выполняет с ним некоторую работу, затем сохраняет и закрывает его. Однако, если в файле есть текст, в котором используется шрифт, который не установлен в моей системе, появляется всплывающее окно, предупреждающее меня об этом факте. Из-за этого всплывающего окна весь сценарий прерывается и выдает сообщение об ошибке.

Есть ли способ справиться с этим сценарием? Возможно, для того, чтобы следить за всплывающим окном и просто закрыть его (сделав эквивалент нажатия «ОК» в окне), прежде чем оно продолжит выполнение остальной части скрипта?


person Sturm    schedule 25.06.2013    source источник


Ответы (1)


Попробуй это:

var oldUserInteractionLevel = app.scriptPreferences.userInteractionLevel;
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.NEVER_INTERACT;
// Put code here that would create the alert.
// E.g. If the alert is caused by opening the document, then open the document here.
app.scriptPreferences.userInteractionLevel = oldUserInteractionLevel;
// After this line you can safely show dialogues to the user.
person dln385    schedule 25.06.2013
comment
Извините, но у моего скрипта есть собственные окна, которые я действительно хочу показать пользователю для сбора данных. Установка этого перечисления в любом месте скрипта нарушает его, поэтому я не могу использовать это решение для моих целей. - person Sturm; 25.06.2013
comment
Я просто попробовал, и, к моему большому удивлению, это сработало! Спасибо! - person Sturm; 25.06.2013
comment
Рад это слышать! Я подумал, что NEVER_INTERACT - неправильное употребление. На самом деле это означает, что пока этот параметр присутствует, не взаимодействуйте ни при каких обстоятельствах. Вы можете так же легко снова изменить значение, а затем взаимодействовать с пользователем. - person dln385; 25.06.2013