我有一个由mean-stack
提供的应用程序,它包含一个网站和一个Excel加载项。 html5
被启用,它具有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>
在Excel插件,我有通过Dialog API打开的网站页面的按钮:
$scope.openDialog = function() {
Office.context.ui.displayDialogAsync("https://localhost:3000/preview/tmp/6wr-4PqdBrYQwjp3AAAD", {}, function() {})
}
当我点击这个按钮在Excel中在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在线在Firefox的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
到我的网站的网址?是否有可能防止这种情况发生?
2)是否可以制作一个Firefox接受的url(不管#
和%2F
)?
编辑1:看来,如果我不使用html5-history-api
,它会起作用。所以不知道如何为displayDialogAsync
禁用html5-history-api
? (之所以必须在office.js
之后使用html5-history-api
是因为here。)
你能分享一个链接,让人们可以测试你描述的行为吗? –
@VivekAthalye对不起,目前我没有其他域名与SSL承载平均堆栈应用程序... – SoftTimur