高级复制到剪贴板jQuery插件 点击复制

  • 源码大小:20.48KB
  • 所需积分:1积分
  • 源码编号:19JP-3625
  • 浏览次数:962次
  • 最后更新:2023年07月03日
  • 所属栏目:文本
本站默认解压密码:19jp.com 或 19jp_com

简介

点击复制是一个轻量级且灵活的jQuery插件,可以将数据属性或其他DOM中定义的任何内容(HTML或纯文本)复制到剪贴板。

复制文本以供以后重用(或仅用于临时存储)是许多用户需要的一项重要任务。此插件实现了一个简单的复制到剪贴板机制,该机制使用本机浏览器功能,以实现高性能和可靠性。

工作原理:

  • 为复制的文本创建缓冲区元素(输入)
  • 将缓冲区元素添加到主体中,以便可以选择它
  • 设置缓冲区内容,然后选择它
  • 使用本机document.execCommand(“copy”)方法执行复制到剪贴板
  • 从车身上拆下缓冲器

如何使用它:

1.要开始,请加载主脚本复制_on_click.js在jQuery之后。

  1. <script src="/path/to/cdn/jquery.min.js"></script>
  2. <script src="/path/to/copy_on_click.js"></script>

2.启用按钮(或任何有效元素)以复制点击即复制数据属性添加到剪贴板。

  1. <button id="example" data-copy-on-click="Copied Text">
  2. Click To Copy
  3. </button>
  1. $(function(){
  2. $('#example').copyOnClick({
  3. // disable the feedback
  4. confirmShow: false
  5. });
  6. });

3.从您指定的另一个元素复制内容(HTML或纯文本)。

  1. <div id="target-element">
  2. <b>This</b> is the HTML that will be <i>copied</i>.
  3. </div>
  4.  
  5. <button class="copy-html" data-copy-on-click="#target-element">
  6. Copy HTML
  7. </button>
  1. $('.copy-html').copyOnClick({
  2. copyMode: "html", // or "text"
  3. });

4.您也可以从元素的任何属性的值中复制内容。例如,您可以启用一个按钮来复制链接中的URL。

  1. <a href="https://www.jqueryscript.net" id="link-example">
  2. jQueryScript.Net
  3. </a>
  4.  
  5. <button class="copy-attr" data-copy-on-click="#link-example">
  6. Copy The Link
  7. </button>

5.您还可以复制元素的任何属性的值。例如,您可以启用一个按钮来复制链接中的URL。

  1. <a href="https://www.jqueryscript.net" id="link-example">
  2. jQueryScript.Net
  3. </a>
  4.  
  5. <button class="copy-attr" data-copy-on-click="#link-example">
  6. Copy The Link
  7. </button>
  1. $('.copy-attr').copyOnClick({
  2. copyMode: "attr",
  3. attrTarget: "href",
  4. });

6.或者复制HTML元素的值。

  1. <a href="https://www.jqueryscript.net" id="link-example">
  2. jQueryScript.Net
  3. </a>
  4.  
  5. <button class="copy-attr" data-copy-on-click="#link-example">
  6. Copy The Link
  7. </button>
  1. $('.copy-attr').copyOnClick({
  2. copyMode: "attr",
  3. attrTarget: "href",
  4. });

7.在复制内容后显示自定义反馈消息。

  1. $('#example').copyOnClick({
  2. confirmClass: "copy-confirmation",
  3. confirmText: "<b>Copied:</b> %c",
  4. confirmTime: 3,
  5. confirmText: "«%c» from %i"
  6. });
  1. /* feedback styles */
  2. .copy-confirmation {
  3. background-color:rgba(0,0,0,0.84);
  4. position:absolute;
  5. bottom: 1rem;
  6. right: 1rem;
  7. z-index:100;
  8. color:#fff;
  9. font-size:16px;
  10. text-align:center;
  11. padding:10px;
  12. padding-top:5px;
  13. padding-bottom:5px;
  14. border-radius:3px;
  15. border:1px solid #ccc;
  16. display:block;
  17. max-width:60vw;
  18. margin-left:auto;
  19. margin-right:auto;
  20. margin-top:-15px;
  21. margin-bottom:1px;
  22. }

7.所有默认插件选项。

  1. $('#example').copyOnClick({
  2. attrData:"data-copy-on-click",
  3. attrTarget:"data-copy-on-click",
  4. copyMode:"self",
  5. triggerOn:"click.copyOnClick",
  6. confirmShow:true,
  7. confirmClass:"copy-on-click",
  8. confirmText:"<b>Copied:</b> %c",
  9. confirmTime:1.5,
  10. beforeCopy:null,
  11. afterCopy:null,
  12. confirmPopup:function(str,target,c,t,txt,x,y) {
  13. // replace % codes:
  14. var s=$.fn.copyOnClick.replaceText(txt,str,target.attr("id"));
  15. // Remove any existing popups:
  16. if(typeof $.fn.copyOnClick.copyconf!="undefined") { clearTimeout($.fn.copyOnClick.copyconf);}
  17. $('.'+c).remove();
  18. // Add the popup after the target:
  19. var $pop=$('<div class="'+c+'">'+s+'</div>');
  20. target.after($pop);
  21. x=x-Math.round( $pop.outerWidth() / 2);
  22. y=y-Math.round( $pop.outerHeight() / 2);
  23. if(typeof x == "number"&&typeof y == "number") {
  24. // This no longer works correctly, we just use default positioning instead!
  25. /* $pop.css({
  26. top:y+"px",
  27. left:x+"px"
  28. }); */
  29. }
  30. // Set a timeout to make the popup disappear:
  31. $.fn.copyOnClick.copyconf=setTimeout(function(){$('.'+c).remove();},Math.floor(t*1000.0));
  32. });

预览截图