我正在制作一个具有两个功能区按钮的 Office 加载项。每个按钮都链接到一个不同的TaskpaneId,单击每个按钮会打开一个不同的任务窗格:
<bt:Urls>
<bt:Url id="Contoso.Taskpane1.Url" DefaultValue="https://localhost:3000/addin/page1" />
<bt:Url id="Contoso.Taskpane2.Url" DefaultValue="https://localhost:3000/addin/page2" />
</bt:Urls>
现在,我想实现这两个页面之间的一些通信。例如,在对 进行一些操作后page1
,我希望page2
自动刷新(从服务器或重新加载数据localStorage
)。结果,当我们点击 时page2
,它已经是最新的了。目前,它还没有系统地更新,要刷新page2
,我们必须点击它的功能区按钮。
https://localhost:3000/
是用平均堆栈构建的,所以页面使用angularjs
并有一个服务器。两个页面的一种通信方式是通过服务器:向服务器page1
发送消息socket.io
,然后服务器通过socket.io
向发送消息page2
发出消息。这有点乏味。
有谁知道 JavaScript API for Office 是否已经有任何简单(和跨平台)的方式来允许在 2 个任务窗格之间进行这种通信?
PS:使用StorageEvent
oflocalStorage
不是一个好主意,因为它似乎不适用于 Mac 或 Windows 的 Excel。