Я пытаюсь отладить надстройку javascript для слова, написанную другим разработчиком, который работал в Word 2016. Но когда наша организация приняла O365, она перестала работать там.Возможно, что наша организация (Penn State) блокирует некоторые функции, а также возможно, что проблема связана с нашей единой регистрацией (Cosign).Надстройка работает , когда я запускаю ее в новом автономном проекте надстройки Word Studio 2017 Word (очевидно, в той же версии MS-Word).
I 'мы попытались отладить код с помощью VS, и ошибка, по-видимому, происходит глубоко в функции Office.onReady ().В этот момент был создан экземпляр объекта Office, но не объект Word.Ошибка отображается как «Невозможно получить свойство run для неопределенной или нулевой ссылки» при первом вызове Word.run
. Вот файл manifest.xlm:
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="TaskPaneApp">
<Id>e69eaa23-19f3-48fd-9f8e-694eb013e433</Id>
<Version>1.0.0.0</Version>
<ProviderName>Microsoft</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="PSU Indexing" />
<Description DefaultValue="Manage and create document indexes." />
<Hosts>
<Host Name="Document"/>
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="C:\PSUIndexer\home.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>
иВот начало файла main.js, который содержит большую часть кода JavaScript для надстройки:
"use strict";
// The initialize function is run each time the page is loaded.
Office.onReady(function() {
$(document).ready(function () {
try {
// Use this to check whether the API is supported in the Word client.
if (Office.context.requirements.isSetSupported('WordApi', 1.1)) {
// alert supported version
$('#system_notes').html("<p>Word version check successful. System ready to use.</p>");
Init();
... // some more code here but it's already failed at this point
}
else {
// Just letting you know that this code will not work with your version of Word.
$('#system_notes').append('<p>This system requires Word 2016 or greater. Some parts may not function.</p>');
}
} catch(e) {
OutputText(e.message);
}
});
});
function Init() {
Word.run(function (context) {
... // init code goes here
return context.sync();
}).catch(handleError);
}
Первоначальная ошибка возникает в word-win32-16.01.js (строка 24, столбец 346444).): "Невозможно получить свойство 'getItem' с неопределенной или нулевой ссылкой."Объект, на который ссылаются, является локальным хранилищем;Я думаю, это потому, что установка ссылается на html и javascript в локальной файловой системе - позже мы захотим разместить это где-нибудь на веб-сервере, но сейчас и в прошлом это был способ, которым он был установлен.Поскольку объект Word не создается, функция Word.run в Init () завершается ошибкой, и после этого никакой javascript работать не будет.
Заранее благодарим за любые идеи.