Word JS Api:Body.getOoxml上的访问被拒绝

时间:2019-06-20 15:39:29

标签: office-js office-addins

我的问题与this question中描述的问题非常相似。但是,该问题的答案是针对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 :(得分:0)

尝试一下。在较早的版本中,Word具有正确的加载顺序是很挑剔的。

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

知道字词后可能会或可能不会起作用