【发布时间】:2022-01-13 05:21:42
【问题描述】:
我发现我的 Outlook 加载项(在 Outlook 2016 中运行)存在问题,当我使用 window.open 打开弹出窗口时,它有时会在用户的默认浏览器(例如 Chrome)中打开,而不是在运行的浏览器中打开加载项(例如 Outlook 2016 中嵌入的 IE11 Web 视图)。这是一个问题,因为它会阻止弹出窗口与加载项通信,而这是保护点击劫持所必需的。
有没有办法强制在运行加载项的同一浏览器中打开弹出窗口,而不使用 Dialog API?我想支持需求集 1.3。
【问题讨论】:
-
我不知道为什么它会在 Chrome 中打开。来自 Outlook 的 window.open 调用应始终在 IE 中打开。但是,如果您单击任务窗格上的链接,该链接将在您的默认浏览器中打开。
-
@Carbo 很不幸,我希望我能做些什么来解决这个问题。只是为了确认一下,您是说 window.open 调用应该始终在 IE 中打开,但链接(即 标签)可能不会?
-
看来我错了。我仍在研究它,但我能够从加载项任务窗格中获取 window.open 以通过使 FireFox 成为 Windows 10 中 http 和 https 协议的处理程序来从 Outlook 2016 打开 FireFox。任务窗格上的链接也在 Firefox 中打开。
-
@Carbo 对此有何更新?只是想知道我的加载项是否可以采取任何措施来防止这种情况发生。
-
对话框无法使用 Office.js 进行 API 调用。它只能使用Office.context.ui.messageParent API。父级可以使用这些消息来利用父级中的 Office.js API。