2017-03-07 159 views
6

可用office.js正式版在这里:Office.js勾销浏览器历史记录功能,打破历史使用

https://appsforoffice.microsoft.com/lib/1/hosted/office.js 

它包含以下几行代码:

window.history.replaceState = null; 
window.history.pushState = null; 

这打破了一些我的Excel加载项中的历史记录功能(我正在使用reactreact-router

为什么office.js取消这些历史记录功能S'我在文档中找不到任何解释。

+0

让我跟进与团队合作 –

回答

5

Excel中使用的浏览器控件不支持History API,如果replaceState和pushState未被清除,它们可用于作出反应,但调用时始终会引发异常。在新的浏览器控件可用之前,您需要切换到基于散列的路由或使用历史API的polyfill。如果在office.js之后包含脚本引用,则似乎可以使用https://github.com/devote/HTML5-History-API

+1

补充说明:将讨论在平台/框架级别是否存在针对此的较长期修复。但是polyfill可能是您最好的短期解决方案。 –

+0

嗨@ MichaelZlatkovsky-Microsoft,是否有所有Add-in主机和平台不支持的浏览器API的列表/参考? –

+0

Hi @ MichaelZlatkovsky-Microsoft,添加history.js给我的应用程序带来了一些麻烦,最近的一个是[this](https://stackoverflow.com/questions/48042888/office-initialize-raises-rootscopeinfdig)。所以看来,我必须禁用html5mode,因此不需要在我的应用程序中使用history.js。关于html5mode,你有关于office.js的更新吗? – SoftTimur