Я пытаюсь добавить диалоговое окно Office к учебнику «Нет отправки» . Я могу отлично запустить учебник, и заблокированные слова будут заблокированы, как и ожидалось. Однако, когда я пытаюсь изменить учебник, чтобы добавить displayDialogAsync (), код диалога полностью игнорируется, и я вообще никогда не вижу всплывающее окно. Вот мои модификации с displayInIFrame, установленным в false:
function validateBody(asyncResult) {
Office.context.mailbox.item.notificationMessages.addAsync('NoSend', { type: 'errorMessage', message: 'Processing mail about to be sent.' });
var dialog
var url = "https://localhost:3000/test.html"
Office.context.ui.displayDialogAsync(url, { width: 80, height: 60, displayInIframe: true }, function(result) {
if (result.status === Office.AsyncResultStatus.Failed) {
console.log("FAILED: " + result.error.message)
reject(new DialogError(result.error.message, result.error))
}
dialog = result.value
dialog.addEventHandler(Office.EventType.DialogMessageReceived, args => {
console.log("MSG RECVD")
console.log(args.status)
if(true){ // just for testing; both branches cause the Send button to grey out
asyncResult.asyncContext.completed({ allowEvent: true });
}
else {
asyncResult.asyncContext.completed({ allowEvent: false });
}
})
dialog.close()
})
//asyncResult.asyncContext.completed({ allowEvent: true });
}
Если я изменю displayInFrame на true, я выполню превращение в функцию, и я вижу ошибку:
Операция завершилась неудачно, поскольку у этой надстройки уже есть активный диалог.
Я проверил, что мой тестовый HTML существует и доступен браузеру. Я также проверил этот вопрос .