У меня есть приложение от mean-stack
, в котором размещен веб-сайт и надстройка Excel. html5
включен, и у него есть
<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>
В надстройке Excel у меня есть кнопка, которая открывает страницу на веб-сайте с помощью Dialog API:
$scope.openDialog = function () {
Office.context.ui.displayDialogAsync("https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD", {}, function () {})
}
Когда я нажимаю эту кнопку в Excel Online в Chrome, открывается диалоговое окно со следующим URL-адресом (обратите внимание, что #
и несколько %2F
систематически добавляются), но это не мешает хорошему отображению страницы.
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
Однако, когда я нажимаю эту кнопку в Excel Online в Firefox, 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
Итак, мои вопросы:
1) Почему Office.context.ui.displayDialogAsync
систематически добавляет #
и %2F
к URL-адресу моего веб-сайта? Можно ли предотвратить это?
2) Можно ли сделать URL-адрес (независимо от #
и %2F
), который принимает Firefox?
Редактировать 1: кажется, что если я не буду использовать html5-history-api
, это сработает. Так не знает как отключить html5-history-api
для того displayDialogAsync
? (Причина, по которой я должен использовать html5-history-api
после office.js
, находится здесь.)