2016-01-05 54 views
2

我有一个Office.js任务窗格加载项,在用户在任务窗格UI上执行特定操作之前,不会对Office API执行任何操作。 UI是一个angular.js SPA。所以,当然,我不需要在Office.initilize上做任何事情。但是,我一直跑到下面的错误,直到我给Office.initilize一个空函数。必须始终设置Office.initialize吗?

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抛出的。

+0

附加信息:该项目使用TypeScript,因此使用office-js.d.ts – Sameera

回答

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任何财产东西。

希望这会帮助你。

+0

为了隔离有问题的代码,我删除了使用任何Office API调用或类型的所有脚本。但是,这个问题并没有消失。 – Sameera

+2

请通过以下URL中的“初始化加载项”部分:https://msdn.microsoft.com/en-us/library/office/fp160953.aspx –

+0

您从您身边删除了所有代码,但仍然是Office应用程序使用此事件。除非从应用程序中删除office.js引用,否则它将继续触发office.initialize事件,但不建议/可能将此JS完全从应用程序中删除。所以建议不管你使用它,都必须调用这个函数。 –

相关问题