Office.js displayDialogAsync 在 IE 上的 word online 中无法正常工作

Office.js displayDialogAsync not working correctly in word online on IE

我正在开发一个 word web 插件,该插件大部分已完成并且在 office 2016/2013 和 word online chrome、edge 和 firefox 上运行良好。但是,我在 IE 11 上的在线字词中遇到 运行 问题。

用户使用 Azure 活动目录帐户登录应用程序,这是使用 Office.context.ui.displayDialogAsync 方法通过弹出窗口完成的。

正如我所说,除了 IE 上的 word online 之外,这在任何地方都可以正常工作。

据我所知,问题是在 IE 上,在弹出窗口中它不被视为有效的办公环境,因此 office.js 未正确初始化。 Office.initialize 似乎从未被调用,如果手动初始化我的应用程序,那么当弹出窗口尝试通过 Office.context.ui.messageParent 与消息通信回主 window 时发生错误:Unable to get property messageParent of undefined or null reference.

同样支持这一点的是,当我使用 OfficeHelpers.Utilities.host 检查主机类型时,在 chrome 或边缘的弹出窗口中显示 "WORD",在 IE 上显示 "WEB", 这似乎意味着 Office.initialize 永远不会被调用并且 Office.context.ui 被保留为 null?

任何人都可以告诉我是否遗漏了什么或者这是 office.js 中的某种错误吗?

我尝试使用 https://appsforoffice.microsoft.com/lib/1/hosted/office.js 和最新的 npm 包中的 office js,两者都是一样的。

编辑:对 displayDialogAsync 的工作原理做了一些调查后,我可以看到当它创建新的 window 时,它会捕获当前上下文,例如 Word|Web|16.00|EN-US|<some guid>。这似乎无处不在,但在 IE 中,它在 IE 中简单地打开常规页面的对话框时确实有效,但是当我们登录到 AD 时,它必须转到 AD 登录页面然后重定向回来,这就是这个值看起来的地方丢失(在 IE 中)。

我看到的特定问题(导航后状态未在 IE 中保留)似乎是因为我的网络应用程序是 运行 在本地,IE 将 localhost 视为不同的安全区域常规站点(例如 AD 登录页面),导致状态在它们之间转换时丢失。

我通过取消选中 Intranet 下的这些框来让它工作(这样 localhost 就属于常规 Internet 规则)