首页 > 解决方案 > Outlook 加载项 - 另存为对话框(保存文件)和外部链接

问题描述

我正在开发 Outlook Web 插件(上下文),用户可以在其中下载特定文件。我现在面临的问题是我无法在 Outlook for desktop 中强制另存为对话框(在 web 中它工作正常)。所以考虑以下简单的html:

<a href='/files/test.pdf'></a>

当我在 Outlook(桌面)加载项中单击它时 - 没有任何反应。如果我指定target='_blank'- Outlook 使用该 URL 打开空模式窗口(我想是 IE11)并且没有任何反应(有时它甚至会强制 Outlook 崩溃并重新启动,在多台 PC 上发出通知): 在此处输入图像描述 我注意到,如果 href 的域与 add 相同-in 的域,然后它会尝试在此弹出窗口中打开它,但如果域不同 - 在默认浏览器中打开新选项卡。

我的问题是 - 是否可以在 Outlook for desktop 中调用另存为对话框?如果不是 - 如果 URL 的域与加载项的域相同,是否可以在新的默认浏览器选项卡中打开链接?

PS我已经尝试过官方示例https://github.com/OfficeDev/Office-Add-in-JavaScript-FileDownload#get-the-filesaver-library,但它不起作用。新版本的 Outlook 可能发生了一些变化。

PPS 我在两台 PC 上尝试过——两台都安装了最新版本的 Office 365,但一台运行的是 Windows 10 18xx 版本,另一台运行的是 1909 版本。在第一台 PC 上不存在此类问题 - 所有带有 target=_blank 的链接都在默认浏览器的新选项卡中打开;在 win 版本 19xx 上 - 出现问题。将 18xx 更新为 19xx 后 - 出现问题。所以这一定与windows update有关......

标签: office-jsoutlook-web-addins

解决方案


我通过创建另一个域来解决这个问题,该域指向加载项所在的位置。当我需要从加载项在默认浏览器中打开新选项卡时,我指定了第二个域。

例如:加载项托管在 myaddin.azurewebsites.net 上,然后我们创建自定义域 myaddin.com。在加载项清单中,我使用 myaddin.azurewebsites.net,在我使用 target=_blank 链接的任何地方<a href="https://myaddin.com/..." target="_blank"></a>


推荐阅读