无法在 Mail Addin 中使用 window.history.replaceState 函数

Hit*_*dra 5 office-js

我使用 durandal 框架和 Office365 JavaScript API(office.js) 创建了 Outlook365 的 SPA 邮件插件。在我的应用程序中的某个地方,我想使用 window.history.replaceState函数,但该函数在 office.js 中显式设置为 null,从而导致错误。

//following lines are presents in Office.js
window.history.replaceState = null;
window.history.pushState = null;
Run Code Online (Sandbox Code Playgroud)

Key*_*van 8

我找到了一个简单的解决方案,react-router经过此更改后效果很好。我们可以在 中将函数Office.js作废之前备份一下index.html,然后恢复:

<script>
  window.backupHistoryFunctions = {};
  window.backupHistoryFunctions.pushState = window.history.pushState;
  window.backupHistoryFunctions.replaceState = window.history.replaceState;
</script>
<!-- Office JavaScript API -->
<script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js">
</script>
<script>      
  window.history.pushState = window.backupHistoryFunctions.pushState;
  window.history.replaceState = window.backupHistoryFunctions.replaceState;
  console.log(window.history.replaceState)
</script>
Run Code Online (Sandbox Code Playgroud)

正如微软代表所指出的,这与 Excel 不兼容,但我想这对于邮件插件来说应该没问题。


lga*_*aud 1

Microsoft 在 Office 加载项中不支持某些功能(警报是另一个功能)。当然看起来他们是故意禁用了那个。