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

Chrome扩展开发:如何实时获取Google Docs编辑内容?

解决Google Docs中实时获取编辑内容的问题

针对Google Docs基于Canvas渲染导致常规input/div监听方案失效的问题,可通过以下几种思路实现内容获取:

  • 监听选区变化事件
    Google Docs会同步维护文本选区状态,通过监听selectionchange事件可实时获取用户选中的内容,适合实时追踪编辑片段:

    document.addEventListener('selectionchange', () => {
      const selection = window.getSelection();
      if (selection.rangeCount > 0) {
        const currentText = selection.toString();
        // 这里处理获取到的文本内容
        console.log(currentText);
      }
    });
    
  • 直接提取文档全文本
    尽管Google Docs用Canvas渲染视觉内容,但页面的innerText仍会同步包含完整的文档文本,可直接读取:

    const fullDocContent = document.body.innerText;
    console.log(fullDocContent);
    
  • 利用MutationObserver追踪文档更新
    Google Docs在用户编辑时,会更新页面内的隐藏DOM节点(如文本缓存层),可通过MutationObserver监听这些节点的变化,触发内容获取:

    const targetNode = document.querySelector('.kix-page-content-wrapper');
    const config = { childList: true, subtree: true };
    
    const observer = new MutationObserver((mutations) => {
      // 每次DOM变化时重新获取文档内容
      const updatedContent = document.body.innerText;
      console.log(updatedContent);
    });
    
    observer.observe(targetNode, config);
    
  • 模拟复制操作(需用户授权)
    若需要精准获取当前编辑区域的内容,可触发系统复制命令后读取剪贴板内容,但需提前向用户申请clipboardRead权限:

    // 触发复制
    document.execCommand('copy');
    // 读取剪贴板
    navigator.clipboard.readText().then(text => {
      console.log(text);
    });
    

注意:Google Docs的DOM结构可能会随版本更新变化,使用时需测试目标节点的稳定性。

内容的提问来源于stack exchange,提问作者Diego Montagud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:35:16