【发布时间】:2016-06-09 14:15:23
【问题描述】:
我正在为 PowerPoint 开发 Office365 Javascript 内容插件,但在消息传递方面遇到了问题。
与 Word 或 Excel 不同,可能会在一个文档中使用多个加载项。例如。一张在幻灯片 3 上,一张在幻灯片 5 上。
我有 2 个场景运行不佳。
- 使用 Office365 网络客户端(在本机中可以正常工作)- 如果有更改 在幻灯片模式下,返回时不会自动反映 以设计器模式滑动。
- Webclient 和本机 - 如果用户在一张幻灯片上注销,我无法让其他幻灯片上的加载项也自动注销。
到目前为止我所尝试的:
查看了Office.js文件和documentation。
调查了underlying tech,因此期望一些标准的html技术可以工作。
尝试了 postMessage 和使用 storage event(直接在 IE 中有效,但在 PowerPoint 中无效)。
我可以实现心跳或 websockets,但宁愿避免不必要地访问服务器,并希望使事情尽可能简单。或者,我可以在 localstorage 中放一些东西并使用 setInterval 来检查它,但这会增加不必要的后台工作并减慢应用程序的速度。
是否有解决上述问题的“好”方法,或者 setInterval/localstorage 检查是目前唯一简单的解决方案?
【问题讨论】:
-
我不得不使用 setTimeout/localStorage 选项。在这种情况下,'setTimeout' 优于 setInterval 作为 setInterval (stackoverflow.com/questions/729921/settimeout-or-setinterval)。不是一个理想的解决方案,但它有效。暂时不打算结束这个问题,因为在更高版本的 api 中,可能会添加一个事件来实现这一点(例如,与下面的@michael mainers 响应一致)。
标签: javascript ms-office powerpoint office365 apps-for-office