我有一个申请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 加载项中,我有一个按钮可以通过以下方式打开网站中的页面:对话框API https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins:
$scope.openDialog = function () {
Office.context.ui.displayDialogAsync("https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD", {}, function () {})
}
当我在 Chrome 中的 Excel Online 中单击此按钮时,它会打开一个包含以下 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
但是,当我在 Firefox 中单击 Excel Online 中的此按钮时,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
系统地添加#
and %2F
到我的网站的网址?有可能阻止这种情况的发生吗?
2)是否可以制作一个url(无论#
and %2F
) Firefox 接受吗?
Edit 1:看来如果我不使用html5-history-api
,它会起作用的。所以不知道如何禁用html5-history-api
为了那个原因displayDialogAsync
? (我必须使用的原因html5-history-api
after office.js
is here https://stackoverflow.com/a/42703406/702977.)