【问题标题】:Cannot send information to dialog box; "Office.context.ui.addHandlerAync is not a function"无法向对话框发送信息; “Office.context.ui.addHandlerAync 不是函数”
【发布时间】:2021-11-03 15:18:29
【问题描述】:

我正在尝试将信息发送到 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

如您所见,Office.context.ui 中没有 addHandlerAync 函数,但 Microsoft documentation 说要使用它。

这里出了什么问题?谢谢

【问题讨论】:

  • 你能console.log(Office.context.ui.addHandlerAsync()) 吗?是非函数还是未定义?
  • 这是一个非函数。它只是给出错误TypeError: Office.context.ui.addHandlerAsync is not a function
  • 你检查了吗?很高兴知道这一点。
  • 是的,当我运行console.log(Office.context.ui.addHandlerAsync()) 时,它只会给我这个错误。你认为这可能是因为我运行的是旧版本的 API 吗?感谢您的帮助
  • console.log(Office.context.ui.addHandlerAsync) 返回未定义。

标签: javascript office-js office-addins outlook-web-addins


【解决方案1】:

我查看了您的加载项。它的 taskpane.html 尚未完成,并且不包含 JavaScript。但是,我在调试器中手动加载对话框页面,并确认您在 dialogbox.html 中的代码正在运行。我可以看到 Office.context.ui.addHandlerAsync 在 Office.onReady 处理程序中可用。是否要修复您的加载项并仔细检查它是否正常工作?

【讨论】:

  • 您好,我已删除所有与“任务窗格”相关的 html 和 js,因为此加载项不需要它们。加载项在按下发送按钮时显示对话框,因此它只需要“命令”和“对话框”相关的 html 和 js。对话框打开后,我想向对话框发送信息。
猜你喜欢
  • 2011-11-09
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 2017-09-14
相关资源
最近更新 更多