2016-01-05 52 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完全從應用程序中刪除。所以建議不管你使用它,都必須調用這個函數。 –

相關問題