#javascript #office-js #office-addins #outlook-web-addins
Вопрос:
Я пытаюсь отправить информацию в диалоговое окно в веб-надстройке Outlook.
var url = window.location.origin '/dialog.html'
var dialog
Office.context.ui.displayDialogAsync(url2,
function (asyncResult) {
dialog = asyncResult.value;
dialog.messageChild('message')
});
Который открывает диалоговое окно и пытается отправить информацию в диалоговое окно, содержащее этот Javascript:
Office.onReady().then(()=> {
Office.context.ui.addHandlerAsync(
Office.EventType.DialogParentMessageReceived,
onMessageFromParent);
});
function onMessageFromParent(arg){
console.log(arg.message)
document.getElementById('ID').style.display = 'none';
}
Однако это просто приводит меня к ошибке:
TypeError: Office.context.ui.addHandlerAsync is not a function
Когда я бегу console.log(Office.context.ui)
, я получаю:
OSF.DDA.UI.ParentUI
[[Prototype]]:Object
closeContainer:function(){ … }
displayDialogAsync:function(){ … }
openBrowserWindow:function(){ … }
__proto__:Object
Как вы можете видеть, внутри нет addHandlerAync
функции Office.context.ui
, но в документации Microsoft говорится, что ее следует использовать.
Что здесь происходит не так? Спасибо
Комментарии:
1. Ты можешь
console.log(Office.context.ui.addHandlerAsync())
? Это не функция или она не определена?2. Это не функция. Это просто выдает ошибку
TypeError: Office.context.ui.addHandlerAsync is not a function
3. Вы это проверили? Было бы здорово знать это наверняка.
4. Да, когда я запускаю
console.log(Office.context.ui.addHandlerAsync())
, это просто выдает мне эту ошибку. Как вы думаете, может ли это быть из-за того, что я использую старую версию API? Спасибо за вашу помощь5.
console.log(Office.context.ui.addHandlerAsync)
возвращает значение не определено.
Ответ №1:
Я смотрю на твою надстройку. Его taskpane.html еще не завершено, и JavaScript не включен. Однако я вручную загружаю страницу диалога в отладчике и подтверждаю, что ваш код в dialogbox.html работает. Я вижу, что Office.context.ui.addHandlerAsync доступен в офисе.На готовом обработчике. Хотите исправить свою надстройку и дважды проверить, работает ли она?
Комментарии:
1. Привет, я удалил все html и js, связанные с «областью задач», так как они не нужны для этой надстройки. Надстройка отображает диалоговое окно при нажатии кнопки «Отправить», поэтому ей нужны только «команды» и «диалоговое окно», связанные с html и js. После открытия диалогового окна я хотел бы отправить информацию в диалоговое окно.