是否必须设置Office.initialize?

时间:2016-01-05 03:26:34

标签: office365 office-js

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

  

SCRIPT5022:第11行第10360行的未处理异常   https://localhost:44300/Scripts/Office/1/office.js 0x800a139e -   JavaScript运行时错误:Office.js尚未完全加载。   请稍后重试或确保添加初始化代码   Office.initialize函数。 office.js(11,10360)

摆脱这种情况的代码是:

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

这是预期的行为吗? 顺便说一下,错误不是即时的,也不是对任何API调用或用户交互的响应。它似乎被丢弃在Office.js文件中的setTimeout。

1 个答案:

答案 0 :(得分:6)

当加载运行时环境并且加载项已准备好开始与应用程序和托管文档交互时,会发生Office.initialize事件,并且必须将其初始化为代码文件开头的函数,以便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的任何属性。

希望这会对你有所帮助。