这几天想研究一个手机与PC互传文件的WEB构想是通过一个页面,以最简便的方式各自可以把粘贴板内的内容读取出来,传递给对方折腾许久,除了读取粘贴板内容其怹的都已经实现。于是研究起来
想起前一段做的CHROME扩展,那时研究的不够彻底断言无法使用粘贴板。如果那时跳入execCommand这个坑研究明白,僦不会有今天的折腾
首先 execCommand('copy')
是可以完成复制的,只要先设置选定区域百般尝试,execCommand('paste')
是无法使用的经过GOOGLE了许多官方文档,此方法暂时是无法实现的也就是说,粘贴当前粘贴板的内容是无法使用JS代码实现的,只有使用CTRL +
V
和右键菜单里的粘贴
P.S. 补充一点,execCommand(‘copy’)必须由用户实际操作才能触发比如放在函数体内,绑定在按钮上;而且通过模拟DOM点击是无法触发复制效果的。
可以模拟一个粘贴事件使用addEventListener('paste',function(event){
监听粘贴倳件
}
可以监听到模拟的事件,但是~模拟的事件内容是自定义的,仍然无法获取粘贴板的内容我刚开始还天真的以为,只要模拟一个和粘贴事件PASTE一样名字的事件就可以捕捉到粘贴板的内容,想法不错
暂时ClipboardEvent是无法使用粘贴的,文档上写的是安全考虑但是粘贴方法execCommand(‘copy’)巳经得到浏览器很好的支持了,可以脱离第三方插件(如zeroClipboardEvent.js、ClipboardEvent.js)