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

Etherpad技术问询:如何获取Etherpad中用户选中的文本内容

Etherpad选中部分文本提取可行方案

场景1:前端页面侧直接获取选中文本

Etherpad底层编辑器基于ACE封装,可直接通过编辑器实例获取选中内容:

  • 同页面下调用方法:
// 获取Etherpad内置的ACE编辑器实例
const padEditor = window.pad.editor.ace;
// 方法1:直接获取当前选中的文本
const selectedText = padEditor.getCopyText();
// 方法2:通过选区范围精确获取对应内容
const selectionRange = padEditor.getSelectionRange();
const selectedContent = padEditor.session.getTextRange(selectionRange);
  • iframe嵌入场景调用方法:
const etherpadIframe = document.getElementById("你的Etherpad iframe节点ID");
const padEditor = etherpadIframe.contentWindow.pad.editor.ace;
const selectedText = padEditor.getCopyText();

如果是做Etherpad自定义插件,把上述逻辑封装到客户端代码中,按需触发即可。

场景2:服务端需要获取指定用户的选中文本

官方原生接口无相关能力,需做轻量二次开发:

  • 第一步:客户端监听选区变化,上报选区参数到服务端
window.pad.editor.ace.on("selectionChange", () => {
  const currentRange = window.pad.editor.ace.getSelectionRange();
  // 上报字段包括:padID、当前用户ID、选区起始行/列、选区结束行/列、当前pad修订版本号
});
  • 第二步:服务端新增自定义接口,收到请求后先调用原生/getText接口获取pad全文,再根据存储的对应用户最新选区参数,截取对应位置的文本返回即可。

注意:多人协作场景下需要匹配修订版本号,确保选区参数和当前全文的版本一致,避免出现选区偏移错位的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:45:03