如何通过Word.js API捕获修订模式下被删除的文本?
如何通过Word.js API捕获修订模式下被删除的文本?
嗨,这个问题我之前实操的时候也踩过坑!确实,Word.js里的TrackedChange.Text属性碰到删除类的修订时,返回的就是空字符串,这玩意儿根本帮不上忙。不过别慌,我找到个靠谱的解决办法——用TrackedChange.deleteRange属性就能搞定!
这个deleteRange对应的就是被删除文本原来所在的内容范围,我们只需要读取它的text属性,就能直接拿到被删掉的内容啦。给你贴个实际能用的代码片段参考:
Word.run(async (context) => { // 获取文档里所有的修订记录 const trackedChanges = context.document.trackedChanges; // 关键:要加载修订的类型和deleteRange下的text属性 trackedChanges.load('type, deleteRange/text'); await context.sync(); // 遍历所有修订,挑出删除类型的记录 trackedChanges.items.forEach(change => { if (change.type === Word.TrackedChangeType.deletion) { // 从deleteRange里提取被删除的文本 const deletedText = change.deleteRange.text; console.log('捕获到被删除的文本:', deletedText); } }); }) .catch(error => { console.error('处理过程中出错:', error); });
这里要提醒你一句:一定要记得在load方法里明确指定deleteRange/text,不然同步文档后根本拿不到对应的文本内容哦。另外这个方法只针对删除类的修订,要是碰到插入、格式修改这类其他类型的修订,还是用原来的Text属性就好。
备注:内容来源于stack exchange,提问作者frostydog47
相关产品推荐
相关产品推荐

