2

在我们的 webapp 中,我们希望能够根据打开网站的主机在同一个 URL 上显示不同的内容。例如https://localhost:44300的行为会有所不同,具体取决于它是从浏览器中打开还是从办公室 js 任务窗格中打开。

在这种情况下,我们不希望包含 office.js javascript,直到我们知道该网站是从 office js 任务窗格中访问的。因此也无法使用Office.context.requirements.isSetSupported

我们目前的做法是查看 URL,因为它包含_host_Info. 例如,我们现在进行以下检查

if(window.location.search.indexOf('_host_Info=Word') > -1) { /* initiate app for word js addin */ }

尽管这可行,但它似乎不是一个好的解决方案——尤其是当我们想要导航到网站上的其他页面时。因此,我们希望有另一种方法可以检测 Office js 主机,而无需事先包含 Office.js 脚本

4

1 回答 1

2

不支持您描述的方案 - 老实说,我想知道您希望将完全相同的站点同时用作 Office 加载项和独立网站的频率。我们最常看到的是,人们会重复使用一些相同的通用库和 CSS,但每个场景都有不同的 html 页面。

另请注意,当作为 Office 加载项运行时,该页面必须包含对 Office.initialize 的引用。这再次使得很难为加载项和独立站点重复使用相同的网站内容。所以我的建议是重构和分享你能做的,但有 2 个单独的 html 存在。

希望这可以帮助,

~ Michael Zlatkovsky,Office 可扩展性团队的开发人员,MSFT

于 2016-03-07T18:18:46.840 回答