必须始终设置 Office.initialize 吗?

Must Office.initialize always be set?

我有一个 Office.js 任务窗格加载项,在用户对任务窗格 UI 执行特定操作之前,它不会对 Office API 执行任何操作。 UI 是一个 angular.js SPA。所以,自然地,我不需要在 Office.initilize 上做任何事情。但是,在我给 Office.initilize 一个空函数之前,我一直 运行 出现下面的错误。

SCRIPT5022: Unhandled exception at line 11, column 10360 in https://localhost:44300/Scripts/Office/1/office.js 0x800a139e - JavaScript runtime error: Office.js has not been fully loaded yet. Please try again later or make sure to add your initialization code on the Office.initialize function. office.js (11,10360)

去掉这个的代码是:

  <script type="text/javascript">
      Office.initialize = function (reason) {
          // Nothing to do here..
      }
  </script>

这是预期的行为吗? 顺便说一句,错误不是立即发生的,也不是对任何 API 调用或用户交互的响应。它似乎被 Office.js 文件中的 setTimeout 抛出。

Office.initialize 事件在加载 运行 时间环境并且 add-in 准备好开始与应用程序和托管文档交互时发生,并且必须将其初始化为函数代码文件的开头,以便从函数调用时 Office.context 属性 或任何其他 属性 office 可用。

参考链接: https://msdn.microsoft.com/en-us/library/office/fp161139.aspx https://msdn.microsoft.com/en-us/library/office/fp142255.aspx

因此,在您的情况下,您可能没有对此事件执行任何操作,但您应用中的任何其他代码正在使用 office.js 中的任何 属性。

希望对您有所帮助。