我们的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调用的每个组合,有或没有重定向页面,都可以工作。有人在那里做了很棒的工作!
我尝试使用Dialog API加载托管在加载项的域中的HTML文件,该文件立即重定向到其他站点,并且这具有相同的结果。我将研究示例场景以了解我可能会做错什么。谢谢。 – Carbo
确保您在Office.initialize()函数内部处理该重定向,以便确保Outlook在离开该页面之前连接了场景后面的位。 –
请确定您指定了[app domains](https://dev.office.com/docs/add-ins/overview/add-in-manifests#specify-domains-you-want-to-open-in-使用Dialog API时,您的清单中的窗口添加窗口)。 –