2016-01-05 2 views
2

У меня есть надстройка панели задач Office.js, которая ничего не делает с API Office, пока пользователь не выполнит определенное действие в пользовательском интерфейсе панели задач. Пользовательский интерфейс является угловым.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> 

Это ожидаемое поведение? BTW, ошибка не была немедленной или в ответ на любые вызовы API или взаимодействие с пользователем. Казалось, что он был сброшен из файла setTimeout внутри файла Office.js.

+0

Дополнительная информация: Проект использует TypeScript и, следовательно, office-js.d.ts – Sameera

ответ

6

Событие Office.initialize происходит, когда среда времени выполнения загружается, и надстройка готова начать взаимодействие с приложением и размещенным документом и должна быть инициализирована как функция в начале файла кода, Свойство Office.context или любое другое свойство офиса будет доступно при вызове функций.

Эталонные Ссылки: https://msdn.microsoft.com/en-us/library/office/fp161139.aspx https://msdn.microsoft.com/en-us/library/office/fp142255.aspx

Так что в вашем случае это может быть возможно, что вы ничего с этим событием, но и любой другой код в приложении используется любое свойство из office.js не делает.

Надеюсь, это вам поможет.

+0

В попытке изолировать код нарушения, я удалил все сценарии, которые использовали любые вызовы или типы API Office. Но вопрос не исчез. – Sameera

+2

, пожалуйста, просмотрите раздел «Инициализировать свою надстройку» на этом URL-адресе: https://msdn.microsoft.com/en-us/library/office/fp160953.aspx –

+0

Вы удалили весь код со своей стороны, но все же Office приложения используют это событие. Если вы не удалите ссылку office.js из своего приложения, он будет продолжать запускать событие office.initialize, но это не рекомендуется/возможно, что вы полностью удалите этот JS из своего приложения. Поэтому рекомендуется использовать эту функцию или нет, эту функцию нужно вызвать. –

Смежные вопросы