将消息从对话框(平均堆栈站点)发送到任务窗格

Send a message from Dialog box (mean-stack site) to the task pane

我正在尝试使用 Dialog API Office 插件。

我可以通过以下方式从任务窗格成功打开对话框:

$scope.openDialog = function () {
    Office.context.ui.displayDialogAsync('https://localhost:3000/home',
        function (asyncResult) {
            dialog = asyncResult.value;
            dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
        });
}

我的对话框是一个 mean-stack 站点。我在 index.html 中添加了 <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>。我尝试使用 Office.context.ui.messageParent(true);,它在控制台中显示错误:

而且我在文档中看到我不太理解:

The Office JavaScript library is loaded in the page. (Like any page that uses the Office JavaScript library, script for the page must assign a method to the Office.initialize property, although it can be an empty method. For details, see Initializing your add-in.)

我也试过在index.html中添加Office.initialize = function () { };,错误依旧,任务面板的processMessage好像没有收到任何东西

所以我应该对我的 mean-stack 网站做些什么特别的事情,以便它可以使用 messagePerent

控制台错误不会对对话框产生任何不良影响。我们已经在内部修复了它。您可以忽略此错误。您是否检查过 office.context.ui.messageParent 是 null 还是 undefined ?如果不是,则对话框已成功初始化。那只会是postMessage方法有问题,你用的是什么系统和浏览器版本? 1.如果是Win10及最新版IE,请确保对话框首页域与任务面板域相同。或者你可以使用其他浏览器试试。 2、如果是Win7&8&8.1和IE,那么你可以在其他浏览器中试试看messageParentapi是否有效。我们已经完成了代码更改以修复 IE 问题。它将很快部署到产品中。