点击按钮复制文本内容 -- jquery Zclip -- Zero Clipboard

今天,经理让我做一个功能,复制文本框中的代码.以前在其他网站上经常见到过这个功能.只不过没有细细研究,今天也是个机会.

这里我使用的事jquery的zeroclipboard来实现复制功能.代码内容很简单,网上也有很多资料.

Zero Clipboard作为一个独立的js库,它利用 Flash 进行复制,需要两个文件:ZeroClipboard.js 和 ZeroClipboard.swf 。

具体实现如下:

jsp页面:

 <p>
	                                    	<textarea class="h100" style="width: 93%;height:150px;" id="jscode">
<!--Ad Survey 广告加载基础代码-->
<script type="text/javascript" src="http://ipengtai.huanqiu.com/resource/js/base.js">
</script>                                    
	                                    	</textarea>
	                                    </p>
	                                    <div class="btn_blank floatL MT10">
	                                    	<a href="javascript:void(0)" id="jscodeCopy">复制代码</a>
	                                    </div>

js代码:

$("#jscodeCopy").zclip({
        path:‘../../../js/pub/media/adPos/ZeroClipboard.swf‘, //记得把ZeroClipboard.swf引入到项目中 
        copy:function(){
            return $(‘#jscode‘).val();
        },
        afterCopy:function(){// 复制成功后的操作
        	$("#jscopyResult").show().html("复制代码成功");
        	$("#htmlcopyResult").hide();
        }
    });

对,就这简简单单的两行,问题就解决了.

不过我在查找解决这个问题的时候,可没有这么简单.首先我们来看看这中间遇到的问题.

  1. 第一个问题也是纠结时间最长的一个问题.这段代码不能够在本地环境下运行,必须要部署到服务器上.我测试jquery代码的时候,习惯现在本地测试,成功后才会转嫁到项目代码中.这次吃亏了,这个jquery方法必须在服务器环境下才能运行得到正确的结果,因为浏览器对flash文件的限制.
  2. zclip()方法无效:不管怎么样,程序就是进不来这个方法.多次尝试,发现当copy函数只返回一句话的时候,afterCopy只返回一句话的时候,该函数才生效.
  3. 第二个问题,同时也是第三个问题.为什么copy里不能做更多的逻辑判断,写更多的代码呢?多写一个alert();都得不到想要的结果.
  4. 第四个问题,这个问题也很头疼.我在同一个页面,有三个地方需要使用到复制粘贴.头两个都没有问题.但第二个和第三个就有问题了.需求是这样的:if(条件一){显示按钮二}else if(条件二){显示按钮三}.也就是其实我这第二个和第三个按钮同时只显示一个.问题就在这里.无论点击那个按钮,执行的复制操作都是第二个按钮的.这里我猜了一下原因:这个flash按钮是按照顺序进行匹配的.也就是是说:第二个按钮显示的时候,点击按钮,执行的是第二组复制功能.而第三个按钮显示的时候(其实也对于页面来说也是第二个显示按钮,因为第二个隐藏了),点击按钮,执行的也是第二组复制功能.

以上是我在做的过程中遇到的问题. 以后慢慢把这些问题解决,在回过头来补充.

---------------------------------------------------------------------------------------

这个zeroclipboard方法,在获取文本框内容和获取div内容时的方式是不一样的.下面我们看一下代码:

参考:http://www.sunzhenghua.com/jquery-zclip-zeroclipboard-copy-paste-demo

--------------------------------------------------------------------------------------

最后,看一下效果吧:

1. 首先引入文件:

2. 看一下代码

只是复制按钮背flash按钮罩住

看js代码实现复制功能.

时间: 2024-12-28 15:21:01

点击按钮复制文本内容 -- jquery Zclip -- Zero Clipboard的相关文章

移动端点击按钮复制文本内容

<div><p>邀请码</p>//<p id="inviteCode" class="inviteCode">{{invite_code}}</p><input id="inviteCode" class="inviteCode" type="text" /><p class="copy">复制</

vue点击按钮复制文本框内容

1.npm进行安装 npm install clipboard --save 2.在需要使用的组件中import 引用方法:import Clipboard from 'clipboard'; 3.添加需要复制的内容 <button class="tag-read" data-clipboard-text="我是可以复制的内容,请点击复制" @click="copy">立即阅读</button> 解析: data-clip

点击按钮复制文本

点击按钮,进行文本复制操作.实现这个功能需要二点: 一:用window.getSelection().selectAllChildren("")获取要复制的内容 二:用document.execCommand ("Copy");进行复制操作 关键代码 window.getSelection().selectAllChildren(val); document.execCommand ("Copy"); HTML <p id="co

一、JavaScript之第一个实例,点击按钮修改文本内容

一.代码如下: 二.运行后效果如下 三.点击按钮,"曾经沧海难为水"变成了日期事件了 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <body> <h2>我的第一段 JavaScript</h2> <button type=&quo

vue项目中做点击按钮复制文本框内容

zeroclipboard是走的flash插件,手机浏览器是不支持的,所以不得不舍弃之,用clipboard,clipboard不需要flash就可以完成复制剪切等功能,而且可以兼容pc,移动端 首先要安装:cnpm install clipboard --save 然后引入包 引入:import Clipboard from 'clipboard'; 这个人地方坑会报各种依赖丢失的错,没关系,用下面的方法可以拯救 项目: . 代码: <span class="NetbarNumber&q

移动端点击按钮复制文本

话不多说直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script src="https://cdn.jsdelivr.net/c

JS复制文本到粘贴板,前端H5移动端点击按钮复制文本

<span id="codeNum">FTYHDSDW</span> <span class=" code-btn" id="codeBtn" data-clipboard-target="#input">复制</span> js代码 <script type="text/javascript"> function copyArticle(even

JS实现点击按钮复制指定代码大全

<br><br>一.点击复制文本框内容的代码:<br><br> <script type="text/javascript"> function jsCopy(){ var e=document.getElementById("content");//对象是content e.select(); //选择对象 document.execCommand("Copy"); //执行浏览器复制

Android Studio EditText点击图标清除文本内容

这篇文章是继自定义EditText样式之后的功能强化,对于实际应用项目有很大的参考意见,感兴趣的朋友可以移步上一篇,"Android Studion自定义EditText样式".具体清除EditText文本内容功能代码如下: package com.liheng; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; import