4

尝试使用 Office 2016 Word 加载项获取 Office 2016 Word 文档正文时,java Script API 方法 body.getHtml() 和 body.getOoxml() 不起作用-;它返回错误“调试信息:{“errorLocation”:“Body.getHtml”}

参考文档-:http ://dev.office.com/reference/add-ins/word/body

这是我的代码-:

Word.run(function (context) {

            // Create a proxy object for the document body.
            var body = context.document.body;

            // Queue a commmand to get the HTML contents of the body.
            var bodyHTML = body.getHtml();

            // Synchronize the document state by executing the queued commands,
            // and return a promise to indicate task completion.
            return context.sync().then(function () {
                $('#output').text("Body HTML contents: " + bodyHTML.value);
            });
        })
        .catch(function (error) {
            $('#output').text("Error: " + JSON.stringify(error));
            if (error instanceof OfficeExtension.Error) {
                $('#output').text("Debug info: " + JSON.stringify(error.debugInfo));
            }
        });

我在这里错过了什么吗?

完整的错误对象-: {"name":"OfficeExtension.Error","code":"AccessDenied","message":"AccessDenied","traceMessages":[],"debugInfo":{"errorLocation":"Body .getHtml"},"stack":"AccessDenied: AccessDenied\n at Anonymous function ( https://appsforoffice.microsoft.com/lib/1.1/hosted/word-win32-16.00.js:19:150094)\n at易 ( https://appsforoffice.microsoft.com/lib/1.1/hosted/word-win32-16.00.js:19:163912 )\n 在 st ( https://appsforoffice.microsoft.com/lib/1.1/hosted /word-win32-16.00.js:19:163999 )\n 在 d ( https://appsforoffice.microsoft.com/lib/1.1/hosted/word-win32-16.00.js:19:163819 )\n 在 c (https://appsforoffice.microsoft。com/lib/1.1/hosted/word-win32-16.00.js:19:162405 )"}

错误代码 5009 -> 加载项没有调用特定 API 的权限。

已经尝试过-:https ://github.com/OfficeDev/office-js-snippet-explorer/issues/13 还没有成功!

4

1 回答 1

0

您是在 Word 中使用 API 教程应用程序来尝试此示例还是编写了自己的应用程序?我刚刚在 API 教程应用程序(可从商店获得)中尝试了该示例,它工作得很好。

// Run a batch operation against the Word object model.
Word.run(function (context) {

    // Create a proxy object for the document body.
    var body = context.document.body;

    // Queue a commmand to get the HTML contents of the body.
    var bodyHTML = body.getHtml();

    // Synchronize the document state by executing the queued commands,
    // and return a promise to indicate task completion.
    return context.sync().then(function () {
        console.log("Body HTML contents: " + bodyHTML.value);
    });
})
.catch(function (error) {
    console.log("Error: " + JSON.stringify(error));
    if (error instanceof OfficeExtension.Error) {
        console.log("Debug info: " + JSON.stringify(error.debugInfo));
    }
});
于 2016-05-19T16:22:33.800 回答