一,用js原生的document.execCommand()

function copy(){    var Url2=document.getElementById("xjh");    Url2.select();    try{        if(document.execCommand('copy', true, null)){            document.execCommand("Copy");            alert("已复制好,可贴粘。");        } else{            alert("复制失败,请手动复制");        }    } catch(err){        alert("复制失败,请手动复制");    }}

兼容性:测试过,兼容IE8以上,谷歌43以上也支持。

二,用jquery插件

jquery.zclip.min.js的用法

jquery.zclip.min.js的作用可用jquery的插件:zclip解决js复制在不同浏览器的支持度。但是前提需要安装flash。

首先的引用jquery包

//网上可以查找下载包
 
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.zclip.min.js"></script>   //导入jquery插件
$(function(){

$('#copy_input').zclip({
path: 'js/ZeroClipboard.swf',   //swf文件不能掉,注意:是下载的swf文件。
copy: function(){//复制内容
return $('#mytext').val();
},
afterCopy: function(){//复制成功
$("<span id='msg'/>").insertAfter($('#copy_input')).text('复制成功');
}
});
});
如果是复制的内容来自输入框input、textarea等,copy对象使用:

调用方法:
copy: function(){
return $('#mytext').val();
}

//如果是复制的内容来自页面元素div、p之类的,copy对象使用:
代码如下

copy: $('#mytext').text();

三,clipboard.js 的使用

clipboard.js 是一个不需要flash,将文本复制到剪贴板的插件。简单介绍下基本运用。

1 引入插件

<pre>
<script src="js/clipboard.min.js"></script>
</pre>

2基本使用

首先需要您需要通过传递DOM选择器,HTML元素或HTML元素列表来实例化它。
<pre>
new Clipboard('.btn');
</pre>
1用一个元素当触发器来复制另一个元素的文本,data-clipboard-target属性后需要跟属性选择器
<pre>

<input id="foo" value="https://github.com/zenorocha/clipboard.js.git">

<button class="btn" data-clipboard-target="#foo">
</button>
</pre>

另外还有另外一个属性data-clipboard-action属性,以指定是要要么copy还是要cut操作。默认情况下是copy。cut操作只适用于<input>或<textarea>元素。
<pre>

<textarea id="bar">Mussum ipsum cacilds...</textarea>

<button class="btn" data-clipboard-action="cut" data-clipboard-target="#bar">
Cut to clipboard
</button>
</pre>

2从属性中复制文本,不需要另一个元素当触发器,可以使用data-clipboard-text属性,在后面放上需要复制的文本.
<pre>
<button class="btn" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">
Copy to clipboard
</button>
</pre>

3其他说明

1通过运行检查clipboard.js是否支持Clipboard.isSupported(),返回true则可以使用。
2显示一些用户反馈或捕获在复制/剪切操作后选择的内容。操作,文本,触发元素
<pre>
var clipboard = new Clipboard('.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); }); 

</pre>

3该插件使用的是事件委托的方式来触发,所以大大减少了对dom的操作。

4高级使用

如果你不想修改你的HTML,那么你可以使用一个非常方便的命令API。所有你需要做的是声明一个函数,写下你想要的操作,并返回一个值。下面是一个对不同id的触发器返回不同的值的例子。具体的使用方法请看https://clipboardjs.com
<pre>
<body>
<input id="foo" value="https://github.com/zenorocha/clipboard.js.git">

<button id='foo_1' class="btn" data-clipboard-target="#foo">
</button>
</body>
<script>
new Clipboard('.btn', {
text: function(trigger) {
if(trigger.getAttribute('id')=='foo_1'){
return 1;
}else{
return 2;
}
}
});
</script>
</pre>


作者:最爱是荔枝链接:https://www.jianshu.com/p/3f8867de041e來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/LGDD/p/8242535.html

js复制功能的有效方法总结新相关推荐

  1. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...

    不知不觉上班一周辽-趁着大好周末,小编挣扎着从床上爬起来,决定对前端日常编程中常用到的一些方法做一个系统的整合. 有些人或许会觉得忘了百度就完事儿,no no no!这事儿小编真的亲践过好多次,百度一 ...

  2. js获取元素的方法与属性

    js获取元素的方法 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量 <scripttyp ...

  3. js入门·对象属性方法大总结

    数组(Array):系列元素的有序集合: 详细演示请看:[js入门系列演示·数组 ] http://www.cnblogs.com/thcjp/archive/2006/08/04/467761.ht ...

  4. php刷新onload(),JS页面刷新的方法总结

    我们在前面介绍了JavaScript刷新页面location.reload()的用法,其实在JS中刷新页面的方法有很多种,这只是其中的一种,那么今天我们就带大家学习下JS刷新页面的方法总结! wind ...

  5. html js url 跳转页面内容,js跳转页面方法总结

    js跳转页面方法大全3祥子网屋;秒后自动跳转-- function countDown(secs){ tiao.innerText=secs; if(--secs>0) setTimeout(& ...

  6. JS中创建对象的方法

    JS中创建对象的方法 最近手头一个项目刚完成,下一个显目还在准备中,趁这个空档期,拿起尘封多年的JS书, 重温一遍JS面向对象程序设计,然后就得出下文,算是一个总结吧. 也许,你会说 "创建 ...

  7. jquery中的map()方法与js中的map()方法

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  8. 请尽可能说出js中数组的方法,最少3个,越多越好

    我接下来要把数组方法全都过一遍,顺手做个整理. 至于为什么整理这个,最近总听说面试经常会问到这个问题, 面试官灵魂发问:请尽可能说出js中数组的方法,最少3个,越多越好 据可靠消息了解到,如果你回答的 ...

  9. Js 字符串属性及方法

    Js 字符串属性及方法 本文记录下字符串相关属性及方法,参考文档 MDM String. 一.语法: 'hello world' "hello world" "中文&qu ...

最新文章

  1. 学习jquery的一些笔记
  2. 使用jXLS将Excel文件解析为JavaBeans
  3. 阿里涉江:你真的会学习吗?从结构化思维说起
  4. java map 数组_java技术Spring集合属性
  5. 打造超酷的PHP数据饼图
  6. 数据挖掘:围绕 统计与概率、分类与聚类、检索方法 ,原理演示或应用程序
  7. k8s集群之master节点部署
  8. 2010-2020年全国poi兴趣点
  9. ssm+安卓APP校园学生疫情防范监控系统毕业设计源码281444
  10. Unity3D视频教程,Unity3D从入门到精通视频教程
  11. java可以进行爬虫吗_java能写爬虫程序吗
  12. Google Picasa2
  13. system.gc()和-XX:+DisableExplicitGC启动参数,以及DirectByteBuffer的内存释放
  14. 旧手机改服务器,并配合花生壳实现外网访问的方法
  15. EXCEL 制作多簇并列的堆积柱形图
  16. Required request body is missing:ParameterException解决方法
  17. linux与windows内核哪个难学,国产操作系统为何都基于Linux内核?又和Windows像?
  18. 1178_hardware_basic_什么是高阻态
  19. makefile传字符串给c语言,makefile终极奥义
  20. MISC 拼图 工具 linux下使用

热门文章

  1. double 直接舍去 保留两位小数
  2. Debian中几个bash初始化脚本使用区别--【转载】
  3. 【转】linux之pmap命令!
  4. 貌似长沙有个用膳吧外卖网
  5. svn trunk branches tags 的用法
  6. POJ2669不错的最大流 竞赛问题(枚举King的个数)
  7. 【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )
  8. 【错误记录】Android 应用运行报错 ( java.lang.VerifyError: Verifier rejected class androidx. | 逆向中遇到的问题 )
  9. 【C 语言】文件操作 ( 文件加密解密 | 加密文件 )
  10. 【错误记录】反射时调用方法及成员报错 ( 执行反射方法 | 设置反射的成员变量 | 设置方法/成员可见性 )