链接和JS重定向导致在Office JS加载项中打开一个新窗口

时间:2016-09-01 01:28:21

标签: javascript angularjs oauth-2.0 ms-office officedev

我正在开发一个用于与Web应用程序进行数据集成的Office(Excel)2016加载项。我们使用的是Office JS API,XML清单文件指向AngularJS Web应用程序。到目前为止,一切都还可以正常工作。

最近,我们决定将OAuth2功能添加到网络应用,以便用户可以通过第三方授权服务器进行身份验证。

问题是,一旦我放置了一个链接(<a>标签)或运行window.location.replace()或将window.location.href设置为指向一个主机名不是清单文件中提到的那个,它在新窗口中打开URL,而我希望它只是重定向到加载项窗口中的URL。

任何人都知道如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:3)

要在加载项窗口中打开网址,您需要在清单文件的AppDomains部分为该网址添加条目。例如,此代码段显示了如何在www.northwindtraders.com上的链接显示在www.contoso.com上托管的加载项中。

<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
  <Id>c6890c26-5bbb-40ed-a321-37f07909a2f0</Id>
  <Version>1.0</Version>
  <ProviderName>Contoso, Ltd</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="Northwind Traders Excel" />
  <Description DefaultValue="Search Northwind Traders data from Excel"/>
  <AppDomains>
    <AppDomain>https://www.northwindtraders.com</AppDomain>
  </AppDomains>
  <DefaultSettings>
    <SourceLocation DefaultValue="https://www.contoso.com/search_app/Default.aspx" />
  </DefaultSettings>
  <Permissions>ReadWriteDocument</Permissions>
</OfficeApp>