リボンからウィンドウを開くときに問題があります。私はonclickがfunction-file.jsで宣言された関数をトリガする私のボタンを宣言しました。すべてうまく動作します。しかし、それはwindow.openをexectuteしません。私はいくつかのCORS問題があるかもしれないことを理解することができます。だから私はいくつかのことをテストしました。最初にウェブサイトのURLをOffice-jsリボン/ FunctionFile.jsから新しいウィンドウを開く
<AppDomains><AppDomain>Website-URL</AppDomain></AppDomains>
と変更しました。そこで私はlocalyをデバッグしようとしました。そして、私はlocalhost上でアドインを実行し、ウェブサーバ(CORSの問題が発生する可能性があるので、これは問題ではないようです)でホストされているウェブサイトを呼び出すと動作するようです。
var winHandle = window.open("https://website");
if (winHandle == null) {
console.log('Window was blocked');
Office.context.ui.displayDialogAsync('https://website/openWebsite.html');
}
上記のコードは、それがその後、window.openトリガーするボタンを提供し、サイトを開いたウィンドウを開くことができない場合にはdisplayDialog-APIを使用しています。だから私は次のようでした。新しい場所を設定しただけでは、ポップアップ警告が表示されるためです。そして、VS-Debug機能でこれを試しています。ウィンドウを開いていませんが、ダイアログが開き、最終的にウィンドウをダイアログから開くことができます。ただし、Manifest.xmlがサイドロードされていると動作しません。
window.openを関数ファイルまたは少なくともdisplayDialogから取得するための提案はありますか?
編集:は 二答えが言うように:それは正しいです、最初ページには、実際に同じ起源である必要があります。しかし、私が遭遇したのは、サイドロードされたアドインが実行できなかったサブドメインコールでした。 Visual Studiosのデバッグモードでは、彼は私にCORS警告を与えて、とにかくロードしました。
オリジナル dialog-apiのドキュメントによれば、displayDialogは最初の呼び出しでドメインを離れるべきではないと言います。しかし、私が直接
Office.context.ui.displayDialogAsync('https://someOtherDomain/website');
を呼び出すときに問題はないようだ、私はあなただけのAppDomain内のドメインを指定する必要がありますね。
ありがとうございました。
あなたはこれを体験しているプラットフォームの詳細を追加できますか? (win32、mac、ios、Online?)ありがとう –