document.addEventListener('copy', function (event) {
var clipboardData = event.clipboardData || window.clipboardData;
if (!clipboardData) { return; }
var text = window.getSelection().toString();
if (text) {
event.preventDefault();
clipboardData.setData('text/plain', text + '\n\n鑫空间版权所有');
}
});
利用剪切板JS API优化输入框的粘贴体验
JS改变剪贴板内容
我们可以利用Clipboard API改变剪切板内容,从而提高输入框粘贴信息的交互体验。
一段简易的处理代码 下面这段JavaScript代码实现的是针对输入框的的粘贴处理(IE9+支持)。然后演示了邮箱,手机号剪切板数据的简单过滤处理,其他场景大家可以自行补充。
例如,复制demo页面手机输入框后面的手机号码,然后粘贴到输入框中,会看到中间的短横线自动被过滤了。
其它 上面代码对剪切板内容的处理比较简单,就是过滤前后空格,邮箱#替换成@,手机号11位标准格式化。大家可以根据实际需求进行更好的处理,例如,XSS过滤可以直接在剪切板中进行等。
拖拽输入优化 当我们拖拽文本进入输入框的时候,也可以做类似的优化,效果如下GIF:
相关JavaScript代码如下:
copy与剪切板
基于剪切板JS API可以做的事情不仅仅是粘贴,复制的时候也可以做些事情,例如,我可以在我的网站页面上绑定一个copy事件,当你复制文章内容的时候,自动在剪切板文字后面加上一段版权声明。
代码示意:
复制demo页面任意一段文字,然后粘贴到输入框中,可以看到粘贴内容最后附有“鑫空间版权所有”这样的信息,如下截图: