You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:59:31