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

本文探讨了在Web开发中如何利用execCommand和clipBoardEvent来处理粘贴板内容,尤其是在尝试实现手机与PC文件互传的场景下。尽管execCommand('copy')可用于复制,但由于安全原因,无法直接通过JS实现粘贴功能。Firefox支持clipBoardEvent,但其他浏览器不支持,且模拟粘贴事件无法访问系统粘贴板内容。目前,Web中粘贴功能仍存在限制。
最低0.47元/天 解锁文章
1286





