wps内容控件点击事件
需求:我希望点击内容控件拿到内容控件的Tag值,根据Tag值去xml里取数据,并且回显数据。
部分代码:
function OnAddinLoad(ribbonUI: any) {
const doc = window.Application.ActiveDocument;
doc.ApiEvent.RemoveApiEventListener('ContentControlOnEnter');
doc.ApiEvent.AddApiEventListener('ContentControlOnEnter', (cc: any) => {
if (!cc.Tag) return
const data = loadChartData(cc.Tag)
if (data?.treeData) {
// 判断是否是已打开,如果没有打开的话再打开
let tsCacheId = Util.buildTaskpaneCacheId('chart-set');
let tsId = window.Application.PluginStorage.getItem(tsCacheId)
if(tsId) {
localStorage.setItem('chart-set-tag', cc.Tag)
} else {
Util.tool.openTaskPane('chart-set', `/chart/row-one?tag=${cc.Tag}`, '内容设置', window.Application.Enum.msoCTPDockPositionRight);
}
}
})
if (typeof window.Application.ribbonUI != 'object') {
window.Application.ribbonUI = ribbonUI;
}
if (typeof window.Application.Enum != 'object') {
// 如果没有内置枚举值
window.Application.Enum = Util.WPS_Enum;
}
window.Application.ApiEvent.AddApiEventListener(
'AfterTaskPaneHidden',
onAfterTaskPaneHidden,
);
Util.longCache.setValue('IsSigned', false);
return true;
}
期望:点击内容控件,触发回调函数。
实际:有时候会触发,有时候不会触发。