私のウィンドウでExcel 2016(ビルド4266)のDialog APIで作成されたダイアログでwindow.close()を呼び出しています。しかし、ダイアログウィンドウは閉じません。同じコードがMac OfficeとExcelオンラインで動作します。これはバグですか?Windows Excelのaddinダイアログでwindow.close()が機能しない2016
答えて
ご質問ありがとうございます。いいえ、バグではありません。 Rickyが述べたように、documentationに示すように、ホストページからdialog.closeを呼び出す必要があります。いくつかのプラットフォームで動作するという事実は、私たちがテストしたりサポートしているものではなく、偶然です。私たちはダイアログが閉じられる方法があるのは理にかなっていると思いますが、実装するかどうかは、汎用window.closeではなく、office.jsのAPIの一部になります。
もう少し拡張すると、window.closeが機能しないのは、ダイアログが単なる標準のブラウザウィンドウではないことです。プラットフォームとモードに応じて、さまざまな構文を使用してダイアログが表示されます。たとえば、Win32では、API displayAsIframeフラグで設定したモードに応じて、Office Online上にwebviewが埋め込まれたウィンドウダイアログが表示されます。新しいウィンドウかIframeを持つフローティングdivです。ダイアログを閉じるためにwindow.closeをキャプチャ/オーバーライドすることはできますが、他のウィンドウメソッドが機能しないため、混乱を招く可能性があります。したがって、一日の終わりには、ダイアログは、ライフサイクルがoffice.jsが提供するプラットフォーム/ APIによって制御されるオブジェクトであり、一般的なブラウザウィンドウではありません。表示するページは、office.jsをロードしてそこに含まれているAPIを呼び出す必要があります。 window.closeをオーバーライドする場合でも、オーバーライドを有効にするにはjavascriptを読み込む必要があります。だから要約すると、私たちのAPIを呼び出すためにあなたのページにoffice.jsをロードする必要があります。ダイアログを閉じるには、今日は親から行う必要があります。将来、ダイアログ自体で呼び出すことができる明示的なcloseメソッドを提供したいと考えています。
返信いただきありがとうございますHumberto。私のケースでは、ダイアログはかなり独立したページであり、office.jsを読み込むことさえありません。それは私たちのサーバーにいくつかのものを保存し、私は作業が完了した後にユーザーのためのクローズボタンを持っている。これは、ダイアログを使用するのは非常に一般的なケースではありませんか? –
私はその根拠を拡張するために私の答えを編集しました。乾杯 –
これをお寄せいただき、ありがとうございました。これは良い内部会話を開始しました。個人的には、window.close
が期待通りに動作するようにする必要があると思います。特に、プラットフォームの2/3ですでに行われているように思えます。
Humbertoの答えに対するコメント:Office.jsを使用せずにこれを動作させる方法 - 私たちができるかどうかは物理的には分かりません。閉じようとしているページにOffice.jsの参照が必要になると思います。それ以外の場合は、ウィンドウをmonkeypatchする方法を想像できません。論理を閉じます。でも、これを持っていただきありがとうございます。私たちはそれについて考えていきます...
こんにちは、これで私を助けることができますか? http://stackoverflow.com/questions/42950678/word-add-in-stops-working-after-dialog-close-is-fired-office-js –
- 1. C# - ヒストグラムがExcel 2016で機能しない理由
- 2. JS window.closeポップアップが親のリフレッシュ後に機能しない
- 3. Response.Redirectでページを開いたときにwindow.close()が機能しない
- 4. アニメーションがダイアログで機能しない
- 5. Excelで@keyが機能しない
- 6. RadButton確認ダイアログが機能しない
- 7. アンドロイド検索ダイアログが機能しない
- 8. 進捗ダイアログが機能しない
- 9. Excel 2016でWorkbook_Open()が起動しない
- 10. ExcelでBeforeSaveが機能しない
- 11. 機能PropertyAccessor.DeletePropertiesがOutlook 2016で機能していませんか?
- 12. ExcelマクロAddin - addinの場所
- 13. Excel 2016- Get&Transformが機能しません
- 14. Outlook 2013/2016アドイン:Outlook.MailItem.Copy() - アクティブなインラインレスポンスアイテムでメソッドが機能しない
- 15. SharePointのオフィスでPreSaveActionが機能しない365(2016)
- 16. Windowsコマンドプロンプトで 'java'が機能しない
- 17. Excel 2007 Windows 7 - グラフが機能しなくなった
- 18. 紙のダイアログ内でdivでネオンアニメーションが機能しない
- 19. Outlook macでOffice.context.mailbox.item.body.get.ync.bodyAsync()メソッドが機能しない2016
- 20. Windowsサイドバーのクリックイベントが機能しない
- 21. Windowsキーパッドのキーコードが機能しない
- 22. SQL Server 2016の "at time zone"機能が期待通りに機能しない
- 23. モバイルブラウザでwindow.close()が動作しない
- 24. window.closeがChromeで動作しない
- 25. Excelエクスポートが機能しない
- 26. Excel vbaテキストボックスsetfocusが機能しない
- 27. Excel Mac - Command + selectが機能しない
- 28. Excel連結が機能しない
- 29. excelユーザーフォームボタンが機能しない
- 30. ポリマーの紙ダイアログが機能していないが
私はなぜそれがうまくいかないのか分かりませんが、それは次のようなダイアログを閉じる標準的な方法ではありません。ダイアログAPI一般に、ホストページからdialog.closeを呼び出す必要があります。詳細については、https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins –