clipboard.js 实现动态获取内容并复制到剪切板

微信浏览器-复制到剪切板-clipboard.js插件 之前写过一篇博客,介绍一个复制到剪切板的插件,ZeroClipboard,什么都hen好,然而就是不支持微信浏览器,我也没找到什么解决方案,我就严正拒绝了产品经理的需求。 直到今天被产品看到一个其他yin的h5,竟然可以实现复制到剪切板的功能,啪啪打脸~ 看了下用了个叫clipboard.js的插件,用法超简单了引入插件 <script type='text/javascript 阅读详情

使用背景:

项目组新重构的项目里面有利用zeroClipboard.js实现复制内容到剪切板的功能, 由于zeroClipboard.js依赖于Flash,而出于我所在公司的安全策略,大部分同事都没有办法下载更新后的Adobe Flash 插件并更新,所以解决原插件使用的bug需要另找方法。


经过一番查找,不利用Flash实现复制内容到剪切板还有另外两种方法:

一、使用原生js里面的window.clipboardData;

二、使用插件clipboard.js.

由于方法一仅支持IE, 对firefox,chrome支持并不友好,因此决定改用clipboard.js.


使用clipboard.js其实很简单,网上查找使用方法也非常方便,大体分为以下几个步骤:

1.引入一个clipboard.js的文件;

2.新建一个clipboard对象;

3.点击按钮获取目标对象里面的内容,将其复制到剪切板。

简单的代码如下:


<!DOCTYPEhtml>
<html>
<headlang="en">
<metacharset="UTF-8">
<title></title>
</head>
<body>
<textareaid="target">复制我里面的内容</textarea></br>
<buttonclass="btn"data-clipboard-action="copy"data-clipboard-target="#target">
点我复制
</button>
<scriptsrc="jquery.js"></script>
<scriptsrc="clipboard.js"></script>
<script>
var clipboard=new Clipboard('.btn');


clipboard.on('success',function(e) {
console.log("内容已经复制到剪切板啦");
});
</script>
</body>
</html>


注意:1.目标对象不能display:none,隐藏之后无法复制,如果需要隐藏,可以设置opacity:0;




上面的方法可以直接复制目标对象里面的内容,可是如果需要复制的内容在点击的时候不存在,需要动态地获取怎么办呢?

在我实际开发的项目里面,需要复制的内容是需要即时获取的,相当于我所需要实现的功能分步骤拆解如下:

1.点击获取点击对象上挂载的参数;

2.传参,通过ajax动态获取需要复制的内容;

3.通过clipboard将内容复制到剪切板。


摸索一番之后,还是如愿实现了项目所需的功能,简单的demo如下:


<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <button data-param="test"  id="copyBtn" class="btn" data-clipboard-action="copy" data-clipboard-target="#copyTarget">点我复制到剪切板</button>

    <div id="copyTarget" style="opacity: 0;"></div>  <!--隐藏目标对象-->

    <script src="jquery.js"></script>
    <script src="clipboard.js"></script>
<script>

    new Clipboard('.btn', {
        text: function(trigger) {
            var param = $(trigger).data("param"); /*获取目标对象上挂载的参数test*/
            getCopyData(param);
            return trigger.getAttribute('aria-label');
        }
    });

    function getCopyData(param){
        var infodata = "" ;
        if(param == "test"){
            $.ajax({
                url:"package.json",
                type:"get",
                data:{},
                dataType:"json",
                async:false,
                success:function(res){
                    infodata = res.description;  /*获取需要复制的内容*/
                    $("#copyTarget").text(infodata);  /*放入目标对象*/
                },
                error:function(){
                    alert("请求错误!") ;
                }
            })
        }
    }

</script>
</body>
</html>

就记录到这里。


JavaScript复制到剪切板功能实现必备支持包与实战方案 回过头看,一个“复制”按钮,竟然牵出了这么多门道:安全机制、浏览器兼容、用户体验、工程化封装……但这恰恰是前端的魅力所在。你以为只是调个API,实则是在和整个Web生态对话。下次当你再看到那个小小的 📋 图标时,不妨多想一秒:它背后有多少工程师的努力,才让它“看似理所当然”地工作着?而这,就是我们存在的意义。💡“伟大的产品,藏在细节里。—— 不知名大佬说过的话 😎本文还有配套的精品资源,点击获取。 阅读详情

相关推荐

import-im6.q16: attempt to perform an operation not allowed by the security policy `PS‘ @ error/cons

这六个 policy 是使用 XML 格式描述的安全策略。要将其中的限制注释掉,在每个 policy 开始和结束的标记之间添加注释标记“

m0_60657960的博客 1909

【博客系列(二)】使用 ClipboardJS 完成 代码块 一键复制

一、在main.js中全局引入 import ClipboardJS from 'clipboard'; Vue.prototype.ClipboardJS = ClipboardJS; 二、在methods重插入代码 addCopyBtn() { this.$nextTick(() => { //获取所有的代码区域的pre元素节点 const codecopys = document.getElementsByTagName("pre");

shanglin1122的博客 806

单细胞分析(16)—— RNA Velocity 分析流程

RNA velocity 是一种强大的单细胞转录组分析工具,它可以预测细胞的未来状态,揭示发育轨迹,并用于探索细胞状态转换。RNA velocity 是一种通过单细胞 RNA 测序(scRNA-seq)数据推测细胞未来状态的分析方法。🚀**RNA velocity 提供了一个全新的角度来理解细胞的动态变化,为单细胞转录组分析带来了更深入的时空信息!

阅读文献,记录学习笔记 2980

clipboard.js复制动态数据

clipboard.js复制请求到的数据 在页面中用一个标签来存储,样式设置为opacity: 0;就会隐藏起来 <div id="copyData" :data-clipboard-text="copyData" style="opacity: 0;"></div> <p @click="CopyProductLink(item)">复制</p> 页面初始化时要对clipboard进行初始化, 不然会出现第一次点击复制无效 或者点击复制到的内容是上一次点

weixin_47211345的博客 2179

Fluent新手避坑:遇到‘Floating point exception’别慌,这7个排查步骤帮你搞定

本文为Fluent新手提供了7个排查'Floating point exception'错误的实用步骤,包括边界条件检查、时间步长优化、求解器配置等关键技巧。通过系统化的诊断流程,帮助用户快速定位并解决CFD仿真中的浮点异常问题,提升计算稳定性。

weixin_42531886的博客 287

Linux内核支持串口屏,linux串口触摸屏设计总结

Linux serial touch 设计总结概述:最近在做嵌入式linux下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系yxj_5421@http://www.doczj.com/doc/87b94b1e227916888486d76d.html,转载请标明出处。系统资源:L...

weixin_39935903的博客 1297

.html实现节点的复制,clipboard.js 实现动态复制(列表根据接口返回数据复制不同的 文字+图片)...

一。纯js复制有弊端:1.想要复制图片+文字比较麻烦2.只能在input节点里面复制文字function copyContact(el) {var oInput = document.createElement('input');//'textarea'oInput.value = "666666666666";document.body.appendChild(oInput);oInput.se...

weixin_39777488的博客 833

FPGA中的CMAC硬核与Interlaken硬核

CMAC硬核和Interlaken硬核是FPGA中两种重要的内置功能模块,它们分别在CNN推理和高带宽芯片到芯片接口方面发挥着关键作用。FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)中的CMAC硬核与Interlaken硬核是两种重要的内置功能模块,它们在FPGA设计中扮演着关键角色。需要注意的是,FPGA设计中的硬核选择不仅取决于硬核本身的性能,还需要考虑硬核与FPGA芯片其他部分的兼容性、功耗、成本等因素。Interlaken硬核。

weixin_41230430的博客 1482

clipboard复制功能,实现静态复制和动态复制

引入jQuery和clipboard文件 <script src="http://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.4/clipboard.min.js">&...

沫沫酱 3479

⚡【C++要笑着学】(13) STL介绍:什么是STL标准模板库 | STL的版本 | 浅谈STL的缺陷

再讲解函数模板之前先对STL做一个小铺垫,本篇将对STL做一个简单的介绍。

有道无术, 术尚可求。有术无道, 止于术。 3036

SolidWorks速成教程P4-4【装配体 | 第四节】——装配体内修改模型&编辑配合方法&配合报错的解决方法

截止目前已介绍完 SolidWorks装配体的常用功能,但基础薄弱的小伙伴或许对装配体的各类功能还不够熟悉。所以这节将进一步加强装配体的学习,同时介绍新手容易犯的错误。总结出三点,一是装配体内修改模型,二是编辑配合,三是配合报错的解决方法。

嵌入式阿齐Archie 5553

用vue实现复制到剪切板 clipboard.js

用vue实现复制到剪切板 通过在网上查看比较,发现使用clipboard.js是比较理想的手段:1,不用flash,2,插件很小,压缩后只有3kb。 关于clipboard.js,官方文档请戳:https://clipboardjs.com。由于文档是英文的,下面我会简单解释一下具体使用方法。其实目前已经有根据该插件封装好的vue插件了,由于项目中只有一个地方用到该功能,我就没有去考虑封装插件...

qq_39527734的博客 4651

微信小程序 - 详细实现随机生成订单号,微信小程序创建订单号思路,不重复订单号生成的方法,小程序自动生成固定规则的订单号流水号(必须是唯一不重复的订单号,生成唯一订单号)详细生成方法,示例代码教程最新

微信小程序,vue2,vue3,订单号,流水号思路,微信小程序 详细实现随机生成订单号(JavaScript),随机生成商户订单号,根据当前时间随机生成流水号或者订单号,微信小程序之商家订单,订单号随机生成器,自动生成固定规则的订单号(前缀+采购日期+6位流水号)微信小程序 生成外卖顺序号,生成订单号或流水号简单方法,实现订单号生成唯一的解决方案,如何按日期生成订单号,14位编号=8位日期(+6位流水号),自动生成订单号(固定+日期+数字),销售订单号自动生成。在微信小程序开发中,详解实现随机生成创建订单号

🏆 前端领域优质创作者 1188

JS - 获取剪切板内容 Clipboard API

JS - 获取剪切板内容 Clipboard API

qq_40147756的博客 4295

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

clipboard.js 实现内容复制到剪切板

版权声明:本文为博主原创文章,未经博主允许不得转载。 这里用的是第三方插件clipboard.js,实现效果如下: 点击复制链接的时候,可以将前面的链接复制下来,当复制成功时会打印‘内容已经复制到剪切板啦’。 html代码 <input value="https://www.baidu.com/" type="text" name="urlL...

sinat_41747081的博客 1261

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

使用clipboard.js复制页面内容到剪切板

最近在做一个的智能客服Web端浏览器应用,其中有一项需求是客户在获取系统返回的 答案后点击“复制答案”按钮将答案复制到系统剪切板。本以为这是一个小case,但是发现如果 要对各种主流浏览器都有良好的兼容性并不简单。原因在于出于安全原因,大多数现代浏览 器都未提供通用的剪贴板复制接口(或即便有,也默认被禁用)。     上网搜索了一下,现有的方案大致有两种:   一:使用原生javasc

three_bird的博客 4359

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Vue.js+Element:clipboard.js实现点击按钮复制内容到剪切板

需求 点击某个按钮,将设置的目标内容(例如地址)复制到剪切板 引入 clipboardjs官网传送门 npm引入:npm install clipboard --save 使用 <template> <div class="drawer"> <el-switch v-model="isopen" /> <el-input placeho...

qq_44419617的博客 3029

Vue 复制内容到系统剪切板

Vue 复制内容到系统剪切板板 在具体生产环境中,经常会遇到将内容复制到剪切板的 使用情况。由于我们项目是 h5+ 的项目。会打包成App; 有时候在网页版中使用该功能是OK的,但是 发布成APP 在 IOS中功能就不好使了。 在这里我们 将 复制到剪切板 功能 细分为 在Web中 和APP中两种情况来...

唐僧的专栏 1813

JQ 实现复制到剪切板

JQ 实现复制功能 JQ 实现复制到剪切板 使用JS 插件 下载地址 clipboard.js 官网地址 复制input输入框的值到剪切板 //HTML 代码 &lt;input id="foo" type="text" value="hello"&gt; &lt;button class="btn" data-clipboard-action="copy" data-clipbo

码狗V1的博客 4352

Js 实现剪切板复制功能

方法一: 使用原生Js,核心方法document.execCommand(&amp;amp;amp;amp;amp;amp;quot;Copy&amp;amp;amp;amp;amp;amp;quot;); 自测可以使用的浏览器:ie9+,Chrome71,firefox63,360,Edge(Safari5不能使用) &amp;amp;amp;amp;amp;amp;amp;lt;textarea id=&amp;amp;amp;amp;amp;amp;quot;te

BigOrange的博客 4146

前端实现写入内容到剪切板

简述了前端在浏览器对系统剪切板的一些操作,方便用户直接粘贴到其他应用

weixin_45022563的博客 3314

clipboard.js源码解析-复制到剪切板插件

1.前言 公司项目有用到clipboard.js,由于好奇心顺手点开了源码看看其究竟是如何实现的,本以为是九曲十八弯错综复杂,其实还是挺容易看懂的,所以就分享下读后感哈哈。 本篇读后感分为五部分,分别为前言、使用、解析、demo、总结,五部分互不相连可根据需要分开看。 前言为介绍、使用为库的使用、解析为源码的解析、demo是抽取源码的核心实现的小demo,总结为吹水,学以致用。 建议跟着源...

aaa333qwe的博客 2151

iview利用clipboard插件实现点击文字复制到剪切板

要实现的需求如下 模仿clipboard官网的高级写法 记得离开页面时清除复制,不然再回来点击复制会出问题 最后,希望以上能给大家一个解决问题的思路。第一次写博客,主要为了记录工作中遇到的难题,小白一枚,水平有限。 ...

qq_39942621的博客 2390

js操作剪切板的内容,兼容ie、chrome、firefox

一、复制粘贴和剪切事件 IE,firefox,chrome浏览器都有剪切板事件(ClipboardEvent):oncopy复制,onpaste粘贴,oncut剪切. 当需要禁止这些行为时,只需要在这些绑定事件中return false;即 <input oncopy = "return false;"/> <input onpaste = "return fals...

yovven的博客 6561
下一篇: 利用chosen.js插件实现下拉可搜索多选,控制选择个数,选项框复位,修改下拉选项的功能(附代码)
cjFrontEnd
博客等级 码龄9年 8粉丝 25原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值