适用需求
平时在使用网页复制文本的时候(双击三击或选中复制),有时候会多复制一个或几个空格(常见于换行),在某些有格式要求的时候就很麻烦,因为看不出来有空格或换行
在复制网页信息的时候希望能够带上自己的一些信息,比如复制别人博客代码的时候会带上出处信息
注意:这个方法存在bug,当复制的内容超过两行之后就行失效,只能复制两行... 但是如果是同一个标签内的内容换行的话是没问题的,慎用~~~~
使用
监听oncopy事件,在触发复制事件之后,修改复制到剪切板的内容
document.oncopy = event => {
// 获取剪切板内容
let content = window?.getSelection().toString();
// 判断当前浏览器是否支持获取剪切板对象
if (event.clipboardData || event.originalEvent) {
// 获取剪切板对象
let clipboardData = (event.clipboardData || window.clipboardData);
// 重新设置剪切板内容(如果是要加一些版权信息之类的修改这个地方即可)
clipboardData.setData('text/plain', content.trim());
// 阻止事件冒泡
event.preventDefault();
}
}