js 操作剪贴板

MDN 官方说明: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard#Using_execCommand()

通过 js 可以操作剪贴板的 复制 剪切 粘贴

还有一个更方便的方法,直接使用第三方 js 库 clipboard.js

主页:​​https://clipboardjs.com/​​​ Github: ​​https://github.com/zenorocha/clipboard.js​​ 测试例子:​​https://kylebing.cn/test/clipboard/​

用到的方法和元素

DOM元素

<textarea> </textarea>
<input/>

js 方法

// 选中输入框中的所有文本
inputElement.select()

// 选中输入框中的部分文本
inputElement.setSelectionRange(start, end)

// 对选中的文本进行 复制 / 剪切 / 粘贴 操作
document.execCommand('copy/cut/paste')

实现原理

是通过 ​​js​​​ 操作 ​​textarea​​​ ​​input​​​ 输入框,只能操作输入框,不能操作其它元素。
所有的 ​​​复制/剪切/粘贴​​ 都是要在选中输入框中的文本之后,才进行操作的。

具体例子

写个例子展示一下

HTML

<label for="text">测试内容:</label>
<textarea name="text" id="text" cols="30" rows="1">ABCDEFGHIJKLMNOPQRSTUVWXYZ</textarea>
<textarea name="text" id="test" cols="30" rows="2" placeholder=""></textarea>

​js​​​ 就直接在 ​​console​​ 中进行调试了

用 ​​shift + enter​​​ 在 ​​console​​ 中换行输入指令

JS

// 选中文本
var text = document.querySelector('#text');
text.focus();
text.setSelectionRange(3,13);

// 操作文本
document.execCommand('cut')

选中后的样子

js 操作剪贴板_clipboard

执行剪切操作后,再手动粘贴到下面的输入框中
js 操作剪贴板_剪贴板_02

就是这样了。