我尝试通过js select()
功能 - docs选择内容控制 - 但我总是收到拒绝访问错误:
Error:
{
"name": "OfficeExtension.Error",
"code": "AccessDenied",
"message": "AccessDenied",
"traceMessages": [],
"debugInfo":
{
"errorLocation":"ContentControl.select"
},
"stack":"AccessDenied: AccessDenied\n 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));
}
});
首先我认为我的代码可能有问题,但我也试过snipper-explorer并出现了同样的问题。 (尝试在本地和通过互联网托管清单和应用程序)
有人在github中报告了同样的问题 - github.com/OfficeDev/office-js-snippet-explorer/issues/13
- 但改变IE安全选项的解决方案并没有解决我的问题。
我的Word版本 - 16.0.4266.1001
答案 0 :(得分:0)
Kamilz,你的身材很古老。我强烈建议您更新您的产品(转到文件 - >更新或按照说明here)。目前最新版本是16.0.7870.2024。我只是像你的例子一样运行你的代码并且成功了,所以这主要是一个过时的构建问题。 也就是说,您的场景可以归纳为2行代码,只需1次访问主机,您应该始终尝试对其进行优化,特别是如果您希望您的代码最适合其他平台。看看这个:
Word.run(function (context) {
context.document.contentControls.getFirstOrNullObject().select();
return context.sync();
})