getselection() 是 window 对象方法,返回 selection 对象,需调用 tostring() 获取选中文本;可监听 selectionchange 事件实时响应,支持多选区但默认仅返回主选区。

getSelection() 是 window 对象提供的方法,用于获取用户当前在网页中用鼠标(或键盘)选中的文本内容,它返回一个 Selection 对象,而不是直接返回字符串。
获取选中文本的基本用法
调用 window.getSelection() 可以拿到当前页面的选区对象,再通过其 toString() 方法转为字符串:
- 最常用写法:
const selectedText = window.getSelection().toString(); - 如果没选中任何内容,
toString()返回空字符串"",不会报错 - 注意:该方法只读,不能设置选区(设置要用
window.getSelection().selectAllChildren()或Range相关 API)
监听用户选中变化
用户选中文字是动态行为,可用 selectionchange 事件监听(触发时机包括鼠标松开、键盘 Shift+方向键 等):
- 绑定在
document上:document.addEventListener('selectionchange', () => { ... }); - 事件中调用
getSelection()获取最新选区,避免取到旧值 - 示例:实时显示选中文本长度 ——
console.log(window.getSelection().toString().length);
处理多区域选中和跨元素情况
现代浏览器支持多选区(如按 Ctrl/Cmd 多选),getSelection() 默认只返回主选区(即最后激活的那个):
- 可通过
getSelection().rangeCount判断是否有多段选区 - 遍历所有 Range:
for (let i = 0; i - 每个
range.toString()可获取对应片段,再拼接或分别处理
兼容性与注意事项
window.getSelection() 在所有现代浏览器中都支持(IE9+),但 IE8 及更早版本需用 document.selection(已废弃,不推荐兼容):
- 避免直接访问
document.selection,除非必须支持极老环境 - 选区可能为空(比如点击空白处后未拖动)、或包含不可见字符(如换行、空格),建议用
.trim()过滤 - 在 iframe 中获取选区时,需确保同源,并操作对应 iframe 的
contentWindow对象
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











