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

时间:2017-05-25 14:40:19

标签: javascript angularjs ms-office mean-stack office-js

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

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

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

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

我在文档中看到我不太清楚:

  

Office JavaScript库已加载到页面中。 (像任何页面一样   它使用Office JavaScript库,页面必须为脚本   为Office.initialize属性分配方法,尽管它可以   一个空方法。有关详细信息,请参阅初始化加载项。)

我还尝试在Office.initialize = function () { };中添加index.html,错误仍然存​​在,任务窗格的processMessage似乎没有收到任何内容。

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

1 个答案:

答案 0 :(得分:0)

控制台错误不会对对话框造成任何不良影响。我们已经在内部修复了它。你可以忽略这个错误。您是否检查office.context.ui.messageParent是null还是未定义?如果不是,则对话框已成功初始化。那么postMessage方法只会出现问题,你使用的是什么系统和浏览器版本? 1.如果是Win10和最新版本的IE,请确保对话框的第一页域与任务窗口域相同。或者您可以使用其他浏览器进行尝试。 2.如果它是Win7&amp; 8&amp; 8.1和IE,那么你可以尝试在其他浏览器中查看messageParent api是否有效。我们已经完成了代码更改以修复IE问题。它将很快被部署。