Word JS api Access Denied (ContentControl.select, Body.getHt



我正在尝试通过 js select()函数 - docs - 选择内容控制,但我总是收到拒绝访问错误:

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

此外,body.getHtml()body.getOoxml()返回相同的"拒绝访问"错误。

代码片段:

// Run a batch operation against the Word object model.
Word.run(function (context) {
    // Create a proxy object for the content controls collection.
    var contentControls = context.document.contentControls;
    // Queue a command to load the id property for all of the content controls. 
    context.load(contentControls, 'id');
    // Synchronize the document state by executing the queued-up commands, 
    // and return a promise to indicate task completion.
    return context.sync().then(function () {
        if (contentControls.items.length === 0) {
            console.log('No content control found.');
        }
        else {
            // Queue a command to select the first content control.
            contentControls.items[0].select();
            // Synchronize the document state by executing the queued-up commands, 
            // and return a promise to indicate task completion.
            return context.sync()
                .then(function () {
                    console.log('Selected the first content control.');
            });
        }
    });  
})
.catch(function (error) {
    console.log('Error: ' + JSON.stringify(error));
    if (error instanceof OfficeExtension.Error) {
        console.log('Debug info: ' + JSON.stringify(error.debugInfo));
    }
});

首先,我认为我的代码可能有问题,但我也尝试过狙击浏览器,出现了同样的问题。(尝试在本地和互联网上托管清单和应用程序(

有人在 github 中报告了同样的问题 - github.com/OfficeDev/office-js-snippet-explorer/issues/13 - 但更改 IE 安全选项的解决方案并没有解决我的情况。

我的 Word 版本 - 16.0.4266.1001

Kamilz,你在一个相当古老的版本中。我强烈建议您更新您的产品(转到文件>更新或按照此处的说明进行操作(。目前,最新版本是 16.0.7870.2024。我只是完全按照您的示例运行您的代码并取得了成功,因此这主要是一个过时的构建问题。也就是说,您的方案可以总结为 2 行代码,并且只需 1 次访问主机,您应该始终尝试对其进行优化,特别是如果您希望您的代码最适合其他平台。 看看这个:

 Word.run(function (context) { 
        context.document.contentControls.getFirstOrNullObject().select();
        return context.sync();
    })
好的,这应该与上面的代码完全相同。希望这有帮助!

相关内容

  • 没有找到相关文章

最新更新