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

在这种情况下,除非我们知道可以从Office js任务窗格中访问该网站,否则我们不希望包含office.js javascript。因此,也无法使用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脚本。

最佳答案

您所描述的方案不受支持-实际上,我想知道您想使用与Office加载项和独立网站完全相同的网站的频率是多少?我们最经常看到的是,人们将重用一些相同的通用库和CSS,但是每种情况下都有不同的html页面。

还要注意,作为Office加载项运行时,页面必须包含对Office.initialize的引用。这再次使得很难将外接程序和独立站点的网站内容重复使用。因此,我的建议是重构并共享您可以使用的内容,但是要有2个单独的html。

希望这可以帮助,

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

关于javascript - 检测Office插件主机而不包含office.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35847541/

10-14 21:17