Ms word 如何从word加载项中的当前选择中获取parentContentControls
我正在使用word javascript api开发一个word插件,需要获取当前选择的contentControl,因此使用parentContentControl进行当前选择Ms word 如何从word加载项中的当前选择中获取parentContentControls,ms-word,office365,office-js,word-addins,javascript-api-for-office,Ms Word,Office365,Office Js,Word Addins,Javascript Api For Office,我正在使用word javascript api开发一个word插件,需要获取当前选择的contentControl,因此使用parentContentControl进行当前选择 **Code:** var range = context.document.getSelection().parentContentControl; context.load(range); 但在控制台上显示错误: 错误:{“name”:“OfficeExtension.Error”,“code”:“Gen
**Code:**
var range = context.document.getSelection().parentContentControl;
context.load(range);
但在控制台上显示错误:
错误:{“name”:“OfficeExtension.Error”,“code”:“GeneralException”,“message”:“GeneralException”,“traceMessages”:[],“debugInfo”:{“errorLocation”:“Range.parentContentControl”},“stack”:“GeneralException:匿名函数处的GeneralException\n(https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.01.js:19:189006)\n在π处(https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.01.js:19:211583)\n at ht(https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.01.js:19:211670)\n at g(https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.01.js:19:211490)\n在l(https://appsforoffice.microsoft.com/lib/1/hosted/word-win32-16.01.js:19:210076)“}
如果当前选择不包含任何contentControl,则应返回NULL,但它会给出错误。请给出建议
谢谢。这是一个非常好的问题,它涉及到office.js技术的核心概念之一:我们如何处理null?长话短说就是,只要有可能一个方法/属性返回null,我们就提供该方法/属性的风格:
var myCC=context.document.getSelection().parentContentControlOrNullObject;//此风格不会引发异常。
context.load(myCC);
返回context.sync()
.然后(函数(){
if(myCC.isNullObject)//当使用这种风格的属性时,您将得到一个isNullObject来检查它是否为null,并相应地执行操作。
log(“没有内容控件”);
其他的
showNotification(“有一个内容控件包装所选内容”);
})
.catch(函数(e){
控制台日志(e.message);
})
})
这是2016版Microsoft Office word。
同样的代码在16.0.7571.7095中工作正常。但在其他word 2016版本中不工作
函数insideOfContentControlCheck(){
Word.run(函数(ctx){
var myCC=ctx.document.getSelection().parentContentControl;
加载(myCC);//我想这就是你缺少的部分!
返回ctx.sync()
.然后(函数(){
console.log(myCC.title);//如果有内容控件,我们将显示标题
});
}).catch(函数(e){
//没有内容控制。
console.log(“错误”,例如消息);
});
}
@Balmori感谢您的详细回复,我已经尝试了上面的代码,但仍然得到了错误:错误:{“描述”:“无法获取未定义或空引用的属性”\u objectPath”,“数字”:-2146823281,“堆栈”:“类型错误:无法获取t.validateObjectPath()\n在t.createQueryAction()\n在i.prototype.load(…我的Office JavaScript API库:您的Office构建是什么?请确保您处于启用状态latest@Balmori我正在使用上述office Api库,它显示的版本为:16.0.7805.1000。我的MS word客户端版本为:1612(Build 7678.2066)。请提供建议。我们已找到“一般异常”的解决方案“。您可以使用parentContentControlOrNullObject而不是parentContentControl。它在最新的word版本中运行良好。
Debug info: {"errorLocation":"Range.parentContentControl"}