起因
这几天想研究一个手机与PC互传文件的WEB,构想是通过一个页面,以最简便的方式,各自可以把粘贴板内的内容读取出来,传递给对方。折腾许久,除了读取粘贴板内容,其他的都已经实现。于是研究起来。
execCommand
想起前一段做的CHROME扩展,那时研究的不够彻底,断言无法使用粘贴板。如果那时跳入execCommand这个坑,研究明白,就不会有今天的折腾。
首先 execCommand('copy')
是可以完成复制的,只要先设置选定区域。百般尝试,execCommand('paste')
是无法使用的,经过GOOGLE了许多官方文档,此方法暂时是无法实现的,也就是说,粘贴当前粘贴板的内容,是无法使用JS代码实现的,只有使用CTRL + V
和右键菜单里的粘贴
。
具体可见CANIUSE里的PASTE事件各浏览器支持列表与W3C cliPboard Api draft
P.S. 补充一点,execCommand(‘copy’)必须由用户实际操作才能触发,比如放在函数体内,绑定在按钮上;而且通过模拟DOM点击,是无法触发复制效果的。
<