2017-05-08 45 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

相關問題