2017-03-07 161 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