我试图获取标题的内容控件,但我无法获取它们。 我最终使用了ooxml但是有点痛苦。
function getContenControlHeader(tag) {
// Run a batch operation against the Word object model.
Word.run(function (context) {
// Create a proxy sectionsCollection object.
var mySections = context.document.sections;
// Queue a commmand to load the sections.
context.load(mySections, 'body/style');
return context.sync().then(function () {
var myHeader = mySections.items[0].getHeader('primary');
return context.sync().then(function () {
var contentControl = myHeader.contentControls.getByTag(tag);
// Queue a command to load the text property for a content control.
context.load(contentControl, 'text');
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync().then(function () {
console.log(contentControl.items[0].text);
});
});
});
});
}
此代码段不起作用,返回的列表为空。文档正文中用于内容控件的相同代码段就像魅力一样。
答案 0 :(得分:0)
我在Word及其工作中的最新公开版本(16.7766)中尝试了您的代码,只要我提供有效的代码即可。可能不言而喻但是: 一个。请检查标题中是否存在带有您提供给getByTag的标记的内容控件。
它仍然不起作用请提供更多信息: 一个。你在Windows,在线,Mac上测试吗? 湾编号。
我还建议您捕获一个异常,以查看可能发生的更多详细信息,检查我添加到您的示例中的处理程序:
function getContenControlHeader(tag) {
// Run a batch operation against the Word object model.
Word.run(function (context) {
// Create a proxy sectionsCollection object.
var mySections = context.document.sections;
// Queue a commmand to load the sections.
context.load(mySections, 'body/style');
return context.sync().then(function () {
var myHeader = mySections.items[0].getHeader('primary');
return context.sync().then(function () {
var contentControl = myHeader.contentControls.getByTag("sample");
// Queue a command to load the text property for a content control.
context.load(contentControl, 'text');
// Synchronize the document state by executing the queued commands, and return a promise to indicate task completion.
return context.sync().then(function () {
console.log(contentControl.items[0].text);
});
});
});
})
.catch(function(e){
console.log(e.message);
} )
}

谢谢!