2017-09-08 39 views
1

我们的Outlook office.js加载项使用window.open()打开了一个外部网站。该其他网站在Chrome,Firefox和Edge的Outlook 2013,Outlook 2016,Outlook for Mac和OWA中正常打开。它在Safari和IE的OWA中无法正确打开,但是如果您复制该URL并将其粘贴到新的Safari或IE窗口中,则它可以正常工作。来自Safari和IE中的OWA的window.open

有趣的是,如果在IE中添加outlook.office.com作为可信站点,那么这在IE中起作用。

当我说打开的窗口不起作用时,我的意思是它会检查有效的操作系统,浏览器和Flash(以某种方式),并且在已给出的场景中失败(但在新的浏览器窗口中成功)。

对于Safari和IE中的OWA和IE来说,调用上下文似乎不同,因为outlook.office.com是受信任的站点时上下文已更正。由于Safari似乎没有与受信任的站点相同的机制,因此此解决方法甚至不适用于Safari。

任何想法可能是什么问题?谢谢。

更新:我刚将Safari更新到版本11.0(12604.1.38.1.7),Safari OWA不再出现此问题。实际上,window.open()调用或Dialog API调用的每个组合,有或没有重定向页面,都可以工作。有人在那里做了很棒的工作!

回答

1

使用window.open()和Office Web加载项引入了许多问题,其中包括您遇到的问题。指导是使用Office.js附带的Dialog API

使用Dialog API非常简单。您可以阅读更多内容并查看Use the Dialog API in your Office Add-ins中的一些示例场景。

+0

我尝试使用Dialog API加载托管在加载项的域中的HTML文件,该文件立即重定向到其他站点,并且这具有相同的结果。我将研究示例场景以了解我可能会做错什么。谢谢。 – Carbo

+0

确保您在Office.initialize()函数内部处理该重定向,以便确保Outlook在离开该页面之前连接了场景后面的位。 –

+0

请确定您指定了[app domains](https://dev.office.com/docs/add-ins/overview/add-in-manifests#specify-domains-you-want-to-open-in-使用Dialog API时,您的清单中的窗口添加窗口)。 –