【问题标题】:AppDomains not needed in Office add-in manifest for external links?外部链接的 Office 加载项清单中不需要 AppDomains?
【发布时间】:2018-06-13 22:27:55
【问题描述】:

我创建了一个简单的 Office 加载项,其清单中没有 <AppDomains> 部分。然后,我将以下链接添加到加载项 .html 文件:

<a href="https://www.tutorialrepublic.com">Test</a>

当我在 Office Online 或桌面 MS Word 中加载加载项并单击链接时,加载项框架会加载来自 www.tutorialrepublic.com 的 html。

根据这里的描述,我本来希望这会被阻止:https://docs.microsoft.com/en-us/office/dev/add-ins/develop/add-in-manifests?tabs=tabid-1#specify-domains-you-want-to-open-in-the-add-in-window

谁能解释这个差异?我发现我也可以提交到表单并将 window.location.href 设置为外部域,它们会在插件 iframe 中打开,而不是像预期的那样在单独的窗口中打开。

【问题讨论】:

  • 能否请来自 Microsoft 的人员确认这是否是预期行为?这对我的加载项的功能至关重要
  • 忘记告诉你什么时候打开这个我正在与产品团队一起调查。我可以重现。我认为该文档页面是在插件模型处于测试阶段时编写的,并且它不是最新的。
  • 产品团队建议您在 Office Online 中看到的内容是预期的,因为 Office Online 中的任务窗格是 iFrame,并且无法根据列表检查 iFrame 导航到的 URL在应用程序域中。我将修改文档以明确这一点。你说你在 Word 桌面中得到了相同的行为。我无法重现。你能仔细检查一下吗?
  • 我仔细检查了 Word 桌面,您是正确的,单击外部链接确实会打开一个新窗口。我使用外部链接向我的插件添加了一个嵌入式 iframe,单击该链接会打开 iframe 内的外部站点。
  • 好的。我会回答这个问题。

标签: office-js office-addins


【解决方案1】:

OP 链接到的文档有误。它已得到纠正。相关段落现在说:

在 Office Online 中运行时,您的任务窗格可以导航到任何 URL。但是,在桌面平台中,如果您的加载项尝试转到 一个域中的 URL,而不是托管起始页的域(如 在清单文件的 SourceLocation 元素中指定),即 URL 在插件面板外的新浏览器窗口中打开 Office 主机应用程序。

要覆盖此(桌面 Office)行为,请在指定域列表的加载项窗口中指定要打开的每个域 在清单文件的 AppDomains 元素中。如果加载项尝试 转到列表中域中的 URL,然后它在任务中打开 桌面 Office 和 Office Online 中的窗格。如果它试图去一个 不在列表中的 URL,然后在桌面 Office 中打开该 URL 一个新的浏览器窗口(在加载项窗格之外)。

注意

此行为仅适用于加载项的根窗格。如果加载项页面中嵌入了 iframe,则 iframe 可以 定向到任何 URL,无论它是否在 AppDomains 中列出, 甚至在桌面 Office 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    相关资源
    最近更新 更多