js实现复制文本(复制文本到粘贴板)
首发

js实现复制文本(复制文本到粘贴板)

优质
请用语音读文章

介绍

clipboard.js是一款不依赖flash或任何重量级框架的粘贴复制插件。并且它没有任何非常复杂的配置。这也是它存在的原因。

安装

  1. 通过npm安装(或者直接下载js文件引入)

npm install clipboard –save

2.引入js

<script src=”dist/clipboard.min.js”></script>

//官网提供了下载地址。也可以使用免费的cdn

使用

示例

<!DOCTYPEhtml>
<htmlclass="no-js">
<head>
<metacharset="utf-8"/>
<metahttp-equiv="X-UA-Compatible"content="IE=edge"/>
<title></title>
<metaname="description"content=""/>
<metaname="viewport"content="width=device-width,initial-scale=1"/>
<link
href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css"
rel="stylesheet"
/>
</head>
<body>
<divclass="input-group"style="width:600px;margin:200px">
<input
type="text"
class="form-control"
id="foo"
value="https://github.com/zenorocha/clipboard.js.git"
placeholder="Amount"
/>
<divclass="btninput-group-addon"data-clipboard-target="#foo">复制</div>
</div>
<scriptsrc="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<script>
newClipboardJS(".btn");
</script>
</body>
</html>

如图书最简单的例子。单机复制按钮即可自动复制文本框的内容

换成下面就会变成剪切。主要是以下属性

data-clipboard-action=”cut”

<divclass="input-group"style="width:600px;margin:200px">
<input
type="text"
class="form-control"
id="foo"
value="https://github.com/zenorocha/clipboard.js.git"
placeholder="Amount"
/>
<divclass="btninput-group-addon"data-clipboard-target="#foo"data-clipboard-action="cut">剪切</div>
</div>
<scriptsrc="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<script>
newClipboardJS(".btn");
</script>

剪切操作仅适用于<input>或<textarea>元素

或者这样。直接复制 data-clipboard-text属性的内容

<buttonclass="btn"data-clipboard-text="要复制的内容">
复制
</button>

事件监听。可以打开控制台自行尝试

varclipboard=newClipboardJS('.btn');
clipboard.on('success',function(e){
console.info('Action:',e.action);
console.info('Text:',e.text);
console.info('Trigger:',e.trigger);
e.clearSelection();
});
clipboard.on('error',function(e){
console.error('Action:',e.action);
console.error('Trigger:',e.trigger);
});

高级用法

  • 动态绑定

newClipboardJS('.btn',{
target:function(trigger){
returntrigger.nextElementSibling;
}
});

  • 动态赋值

newClipboardJS('.btn',{
text:function(trigger){
returntrigger.getAttribute('aria-label');
}
});

  • 要在Bootstrap Modals中使用或与任何其他更改焦点的库一起使用。您需要将focus元素设置为container值

newClipboardJS('.btn',{
container:document.getElementById('modal')
});

  • 更好的管理单页面的DOM生命周期

varclipboard=newClipboardJS('.btn');
clipboard.destroy();

兼容性

备注

如果需要支持更低版本的浏览器。可以参考官网的介绍。它能够优雅的降级

提供Chrome和Firefox的扩展

一个浏览器扩展。为GitHub。MDN。Gist。StackOverflow。StackExchange。npm甚至Medium中的每个代码块添加“复制到剪贴板”按钮。需要的可以私信或者前往扩展中心自行下载。

以上就是由优质生活领域创作者 生活常识网 整理编辑的,如果觉得有帮助欢迎收藏转发~

分享到 :
相关推荐

二战十大最烂战斗机(中国最差的战斗机)

请用语音读文章彼之蜜糖。我之毒药。用这句话形容P-39"飞蛇(Airac[...

伤感的句子说说心情(伤心的句子说说心情短语)

请用语音读文章伤感的句子说说心情一、心累了。你终于花光了我的耐心和对你的喜欢。[&h...

华为P和Mate二手机要多钱(Mate新品官宣5.19发)

请用语音读文章经查。华为商城日前上线认证二手机专区。目前开卖的型号包括P30、P[&...

报效祖国的诗句有哪些(关于报效祖国的诗句)

请用语音读文章鲁迅先生说过:“我们从古以来。就有埋头苦干的人。有拼命硬干的人。有为[...

发表评论

您的电子邮箱地址不会被公开。