我正在为PowerPoint开发Office365 Javascript内容加载项,在消息传递方面遇到问题。
与Word或Excel不同,一个文档中可能会使用多个加载项。例如,一个在幻灯片3上,一个位于幻灯片5上。
我有两个场景不能很好地工作。
- 使用Office365 Web客户端(在本机中运行良好)-如果发生更改在幻灯片放映模式下,返回到该模式时不会自动反映在设计器模式下滑动
- Web客户端和本机-如果用户在一张幻灯片上注销,我无法让其他幻灯片上的加载项也自动注销
到目前为止我尝试过的:
-
浏览Office.js文件和文档。
-
研究了底层技术,因此期望一些标准的html技术能够发挥作用。
-
尝试了postMessage和使用存储事件(直接在IE中工作,但在PowerPoint中不工作)。
我可以启动心跳或websocket,但我宁愿避免不必要地访问服务器,并希望事情尽可能简单。或者,我可以把一些东西放在本地存储中,并使用setInterval进行检查,但这会增加不必要的后台工作并降低应用程序的速度。
有没有解决上述问题的"好"方法,或者setInterval/localstorage检查是目前唯一简单的解决方案?
您可以尝试使用document.settings属性而不是localStorage。有一个settingsChanged事件可能会帮助您完成所需的操作。我以前从未使用过它,所以请告诉我们它是否有帮助(或没有帮助)。
截至发布日期,settingsChanged事件仅适用于Excel。
浏览文档,这类事情似乎可以使用refreshAsync实现。