【问题标题】:displayDialogAsync method of Office.js API not opening the pageOffice.js API 的 displayDialogAsync 方法未打开页面
【发布时间】:2018-10-22 20:40:46
【问题描述】:
我用这个Microsoft tutorial 在VS2017 中构建了一个WORD 插件。该加载项按预期工作。然后,为了测试,我在Home.html 文件的任务窗格标记中添加了一个按钮btnTest。 btnTest 调用Home.js 中的以下函数。当您单击任务窗格中的btnTest 按钮时,代码的第一行(现已注释掉)在浏览器中打开指定的 url,但第二行什么也不做。我怎样才能让displayDialogAsync(…) 在这里工作?我正在使用Office 2016 desktop version:
function MyTestMethod() {
//window.open('http://localhost:50900/home.html');
Office.context.ui.displayDialogAsync('http://localhost:50900/home.html');
}
【问题讨论】:
标签:
office-js
office-js-helpers
【解决方案1】:
一般故障排除建议:
请在 displayDialogAsync 的调用中添加回调参数。将 AsyncResult 对象传递给回调。在回调的主体中读取 AsyncResult.status 和 AsyncResult.error 属性并将它们记录到控制台。这会告诉你出了什么问题。
在这种情况下,您使用的是 http 协议。您链接到的帮助主题说 https 是必需的。
我强烈建议大家在使用 Dialog API 之前通读这篇文章:Dialog API in Office Add-ins。
【讨论】:
-
但是我从 GitHub 下载了this 示例到VS2017,其中IISExpress 也在没有 SSL 的情况下运行,并且在调用以下方法时成功显示对话框function openDialog() { Office.context.ui.displayDialogAsync(window.location.origin + "/Dialog.html", { height: 50, width: 50 }, dialogCallback); }
-
该示例的自述文件说在不使用 VS 时使用 HTTPS。它没有为 VS 指定此项的唯一原因是因为为 VS 创建的 Office 插件项目自动使用 HTTPS。 .proj 文件显示 <WebProjectProperties><UseIIS>True</UseIIS> … </WebProjectProperties>。