【问题标题】:Communicate between Office taskpane and content addin在 Office 任务窗格和内容插件之间进行通信
【发布时间】:2020-10-09 14:09:14
【问题描述】:
我正在为 Powerpoint 开发任务窗格插件和内容插件。我希望有可能通过任务窗格插件来操作内容插件的内容,例如按下任务窗格插件中的按钮以更改所选幻灯片上内容插件中的图像或其他 Web 内容。
我可以在同一个 React 项目中托管这两个插件,但据我所知,我无法通过 powerpoint 在它们之间进行交流。
【问题讨论】:
标签:
javascript
reactjs
ms-office
office-js
office-addins
【解决方案1】:
如果这两个加载项都托管在完全相同的域中,您可以尝试使用 LocalStorage 作为中间人。您的任务窗格将信号存储在 LocalStorage 的特定键中。您的内容加载项必须设置为定期检查该密钥的更改,然后做出相应的响应。我还没有尝试过,但它可能会起作用。
【解决方案2】:
这是一个众所周知且已解决的问题 - 您正在寻找窗口或选项卡之间的通信。
在这里查看:Communication between tabs or windows
在您的应用程序中,在初始化部分,您必须注册事件侦听器以进行存储。
window.addEventListener('storage', () => {
console.log('your local storage has changed');
});
并根据接收到的事件负载,您可以操作数据。