Word JS Api: доступ запрещен для Body.getOoxml - PullRequest
0 голосов
/ 20 июня 2019

Моя проблема очень похожа на описанную в этом вопросе . Тем не менее, ответ на этот вопрос для select(), и мне нужно решение для body.getOoxml().

У меня есть этот простой код:

Word.run(function (context) {
    var xml = context.document.body.getOoxml();
    return context.sync().then(function () {
        // do something
    });
}).catch(errorHandlerDS);

...

function errorHandlerDS(error) {
    console.log(JSON.stringify(error));
}

Моя версия Word 16.0.4266.1001, и я получаю эту ошибку:

{
    "name": "OfficeExtension.Error",
    "code": "AccessDenied",
    "message": "AccessDenied",
    "traceMessages": [],
    "debugInfo": {
        "errorLocation": "Body.getOoxml"
    },
    "stack": "AccessDenied: AccessDenied\n   at Anonymous function (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:150094)\n at yi (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163912)\n at st (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163999)\n at d (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:163819)\n at c (https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.00.js:19:162405)" 
}

В более новых версиях Word этот код работает хорошо и не выдает никаких исключений. Однако мой клиент не хочет обновлять свои версии Office. Есть ли способ заставить код работать на этой версии?

1 Ответ

0 голосов
/ 20 июня 2019

Попробуй это. Word довольно привередливый с правильным порядком загрузки в старых версиях.

const body = context.document.body;
await context.sync();
const xml = body.getOoxml();
await context.sync();
// do something

Это может или не может работать, хотя, зная слово ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...