2017-05-08 40 views
1

我正在制作一个Excel加载项Excel JavaScript API。此加载项中有一个按钮,点击它会启动popup = window.open("https://localhost:3000/#/new/", "popup", "width=1000, height=1100")并弹出浏览器窗口。在不同的插件实例之间共享一个相同的弹出窗口

关闭工作簿或加载项不会系统地关闭弹出窗口。所以目前,如果我再次打开工作簿和加载项,并单击按钮,将弹出另一个浏览器窗口。

我想如果有可能总是使用相同的弹出窗口为所有的excel /加载项实例。我们可以使用localstorage在不同的excel/add-in实例之间共享信息,但我不确定是否可以将弹出窗口保存在那里。

有没有人有任何好主意来实现这一目标?

回答

1

对于Office加载项,您应该使用内置的Dialog API。这个API确保弹出窗口可以正确处理,而不管平台(即跨浏览器,移动和桌面客户端)。

对话框对象支持close方法,允许您关闭父任务窗格中的任何打开的对话框。

+0

我的测试表明,关闭taskpane或excel的残酷不会关闭系统的对话框,所以我的问题也适用于对话框:如何在不同的外挂程序实例之间共享相同的对话框窗口? – SoftTimur

+0

您不能重用任何孤立窗口,因为您不再拥有它们的句柄。您需要在对话框页面中检查其父项的逻辑,并在父项消失时自动关闭。你可以使用'messageparent'方法来做到这一点。 –

+0

对话框页面定期发送'messageparent'以检查什么是有效的方式? – SoftTimur

相关问题