浏览器支持程度不同,不过主流浏览器基本都OK
场景
因内部元素的问题,复制后粘贴的文本总是会被换行,需要做优化处理
代码:
//此处仅进行全局的操作,如果想监听特定区域的应获取Element对象绑定事件
document.oncopy = () => {// 监听浏览器复制事件
event.preventDefault();//阻止默认事件,防止复制真实发生
let content = window.getSelection().toString();//获取复制的文本值
event.clipboardData.setData("text", content.replace(/[\n\r]/g,' '));//使用replace替换掉换行符,同时用\n\r是为了防止不同系统的不同换行符
};
clipboard对象操作方法非常丰富,详见ES6语法
Clipboard API 的操作是异步的,是对传统document.execCommand()的升级,使用 Promise 对象,不会造成页面卡顿