js选中文本和复制文本
Selection
var selection = window.getSelection();
selection 是一个 Selection 对象。 如果想要将 selection 转换为字符串,可通过连接一个空字符串(””)或使用 String.toString() 方法。即selection+""
或者selection.toString()
会返回页面中选中的文本
Range
被选中的文字会对应一个range对象,代表选中的区域,通过window.getSelection().getRangeAt(0)
代表第一个被选中的区域,也可以通过document.createRange()
创建一个选中区域,range.selectNodeContents(el)
将dom节点添加到range对象,selection.addRange(range)
将range添加到文本选中区,selection.removeAllRanges()
为取消选中的文本。执行下面的代码会选中页面的第一个p元素。
1 | var el = document.querySelector("p"); |
execCommand 方法允许运行命令来操纵可编辑内容区域的元素
bool = document.execCommand(aCommandName, aShowDefaultUI, aValueArgument);
- aCommandName: 一个 DOMString ,命令的名称。
- aShowDefaultUI: 一个 Boolean, 是否展示用户界面,一般为 false。
- aValueArgument: 一些命令(例如insertImage)需要额外的参数(insertImage需要提供插入image的url),默认为null。
- 返回值bool为布尔值,如果是 false 则表示操作不被支持或未被启用,执行
document.execCommand('Copy', 'false', null);
会复制页面选中的文本
示例(点击按钮复制p文本内容)
1 | // 页面dom元素 |