ExcelアドインをExcel JavaScript APIで作成しています。このアドインにボタンがあり、それをクリックすると window.open("https://localhost:3000/#/new/", "popup", "width=1000, height=1100")
が起動し、ブラウザウィンドウがポップアップします。Excelアドイン/ファイル/プログラムのイベントを閉じるか、オープナーがまだ生きているかを確認してください。
新しいページはangularjs
によって作成されます。それは$window.opener.postMessage(msg, $window.opener.location.href)
によってアドインオープナーにpostMessage
を送ることができます。ここでは、ページにリアルタイムでflag
を追加して、ページがオープナーアドインに接続されているかどうかを指定します。
たとえば、新しいページがポップアップすると、フラグはconnected
と表示されます。 Excelファイルを閉じると(たとえば、ExcelプログラムをWindowsで閉じる、Excelのオンラインでブラウザタブを閉じる)、通常はポップアップブラウザウィンドウがシステマティックに閉じないが、フラグをdisconnected
にしたい。
Excel JavaScript APIによってclose events of add-in/file/program
があるかどうかわかりません。その場合は、イベントがトリガーされたときに、アドインからポップアップブラウザウィンドウにpostMessage
というメッセージを送信することができます。
それ以外の場合は、ポップアップブラウザウィンドウの横に、オープナーがまだ生きているかどうかを検出する効率的な方法はありますか?
ありがとうございましたDialog APIについて知っておくと良いです。 Excelアドインで 'Office.context.ui.displayDialogAsync( 'https://www.google.fr'、{height:1100、width:1000})'を使ってテストしました。アドインを非表示にしたり、Excelのタブを閉じたりすると、ダイアログが体系的に閉じられないようです。 – SoftTimur