2017-05-08 19 views
1

ExcelアドインをExcel JavaScript APIで作成しています。このアドインにはボタンがあり、クリックするとpopup = window.open("https://localhost:3000/#/new/", "popup", "width=1000, height=1100")が起動し、ブラウザウィンドウがポップアップします。異なるアドインインスタンス間で同じポップアップウィンドウを共有する

ブックまたはアドインを閉じても、ポップアップを体系的に閉じることはできません。だから、現時点で、ブックとアドインをもう一度開いてボタンをクリックすると、別のブラウザウィンドウがポップアップします。

すべてのExcel /アドインインスタンスに対して常に同じポップアップを使用できる場合はと考えています。異なるExcel /アドインインスタンス間で情報を共有するのにlocalstorageを使用できますが、そこにポップアップ/ウィンドウを保存することが可能かどうかはわかりません。

これを達成するための良いアイデアはありますか?

答えて

1

Officeアドインの場合は、組み込みのDialog APIを使用する必要があります。このAPIは、プラットフォーム(ブラウザ、モバイル、デスクトップの各クライアント)に関係なく、ポップアップが正しく処理されるようにします。

Dialogオブジェクトは、closeメソッドをサポートしているため、親タスクペインから開いているダイアログを閉じることができます。

+0

私のテストでは、タスクペインを閉じたり、残酷に優れていると、システム上ダイアログが閉じないので、私の質問はDialogにも当てはまります。異なるアドインインスタンス間で同じダイアログウィンドウを共有するには? – SoftTimur

+0

孤立したウィンドウはハンドルがなくなったため再利用できません。ダイアログページ内で親をチェックし、親が消滅した場合は自動的に閉じるロジックが必要です。これは 'messageparent'メソッドを使って行うことができます。 –

+0

Dialogページが 'messageparent'を定期的に送信して確認するための効率的な方法は何でしょうか? – SoftTimur

関連する問題