2

ウェブサイトとExcelアドインをホストするmean-stackのアプリケーションがあります。 html5が有効になって、それがアドインExcelでdisplayDialogAsyncとhtml5-history-apiの競合

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script> 
<script src="https://cdn.rawgit.com/devote/HTML5-History-API/master/history.js"></script> 

を持っている、私はDialog APIにより、ウェブサイト内のページを開くボタンがあります。

$scope.openDialog = function() { 
    Office.context.ui.displayDialogAsync("https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD", {}, function() {}) 
} 

私はExcelでこのボタンをクリックするとChromeのオンラインでは、次のURLのダイアログボックスが開きます(#と複数の%2Fが体系的に追加されています)。ただし、ページの表示が妨げられることはありません。私は、FirefoxでExcelオンラインでこのボタンをクリックすると

https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD?_host_Info=excel|web|16.00|en-us|b6f37f78-e519-7d03-0069-b9c4317a362c|isDialog#%2Fpreview%2Ftmp%2F6wr-4PqdBrYQwjp3AAAD%3F_host_Info=excel%7Cweb%7C16.00%7Cen-us%7Cb6f37f78-e519-7d03-0069-b9c4317a362c%7CisDialog 

ただし、URLは、ウェブサイトのホームページを表示することが判明し、次のURLに急速に変化:だから

https://localhost:3000/home#%2Fpreview%2Ftmp%2F6wr-4PqdBrYQwjp3AAAD%3F_host_Info=excel%7Cweb%7C16.00%7Cen-gb%7C919fff78-e51f-dc20-0c3c-871b7d0ec25d%7CisDialog 

を私質問は:

なぜ私はOffice.context.ui.displayDialogAsyncをシステムに追加しますか#%2F私のウェブサイトのURLに?これが起こるのを防ぐことは可能でしょうか?

2)Firefoxが受け付けるURLを(#%2Fに関係なく)作ることはできますか?

編集1:html5-history-apiを使用しないとうまくいくようです。だからdisplayDialogAsyncのためにhtml5-history-apiを無効にする方法がわからないのですか? (office.jsの後にhtml5-history-apiを使用しなければならない理由は、hereです。)

+0

説明している動作をテストできる場所でリンクを共有できますか? –

+0

@VivekAthalye申し訳ありませんが、私は平均スタックアプリケーションをホストするSSLで他のドメイン名を持っていません... – SoftTimur

答えて

4

これはこれを行っているdisplayDialogAsyncではありません。これは角度ルーティングと角度位置戦略で頻繁に発生する問題です。 「角度アプリが自分のURLにハッシュを追加しています」を検索すると、そのアプリとソリューションに関する多くの情報が見つかります。

+0

'https:// localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD'をうまく開くことができますブラウザでは、それはハッシュを追加する 'displayDialogAsync'です... – SoftTimur

+0

私は同意しません。これは、ハッシュ値をURLに追加するOffice.jsのコードではありません。しかし、あなたが特定の位置戦略を使用しているときには、Angularがあります。私が提案した検索をしてください。あなたはそれがすべてのURLで発生しないことがわかります。それは複雑な現象です。 –

+0

私はOPを昨日編集しました...私のテストでは、 'html5-history-api'を削除すると、ハッシュは追加されないので、' displayDialogAsync'と 'html5-history-api'の間に矛盾があります。しかし、私は[this](https://stackoverflow.com/questions/42642863/office-js-nullifies-browser-history-functions-breaking-history-html-html-html.html)のため、アプリケーション全体に 'html5-history-api'を使わなければなりません。使用/ 42703406#42703406)。 – SoftTimur

関連する問題