zoukankan      html  css  js  c++  java
  • H5前端自动复制,JS自动绑定复制,JS复制到剪贴板。

    H5前端js中自动复制功能:简单说下就是点击一个按钮触发事件,然后PC页面或者手机上的快捷粘贴都会被绑定复制值

    万变不离其中,我还是喜欢用原生的方法document.execCommand('copy')。网上也有些第三方js封装了这个方法属性,但是浏览器会有兼容问题

    先从html开始吧,如下:

            <label id="cSharingLinks" style="opacity:0;position: absolute;z-index:-999" >123</label>
            <input type="button" value="复制" class="btnCopySharingLinks" />

    第一个label标签用来存需要绑定复制的值。

    注意:我之前用的input 的文本框,然后复制后粘贴出来会有2个换行,我是琢磨了半天去不掉,然后换label就收工了。

          这个标签不能用这些方法隐藏( jquery.hide()、display:none ) ,不然Copy失败。但是加了些样式给他变透明、漂移、置底 差不多也是个隐藏就行了。

    第二个input按钮主要用来触发事件,随便你用啥,只要你能触发事件就行(我用标签的class通过juqery绑定了click方法)。

    再是js代码,如下:

            $("#cSharingLinks").html("需要复制的值");  //为标签写入需要复制的值。注意:在Vue.Js中这步需要放在Created或者methods中,不然赋值顺序会有问题。
            $(".btnCopySharingLinks").click(function () {

              var copyDom= document.getElementById('cSharingLinks');  //原生js根据Id获取到Dom对象。
              var range = document.createRange();  //创建一个range对象。
              range.selectNode(copyDom);  //选择整个节点,包括子节点。
              window.getSelection().removeAllRanges();  //移除选中内容。
              window.getSelection().addRange(range);  //添加选中内容。
               document.execCommand('copy');  //执行自动复制。
              window.getSelection().removeAllRanges();  //删除所有选中内容。
            });

    最后,如果是一次性的可以通过 以下2个方法,解除对范围的引用,从而让垃圾回收机制回收其内存。但是一旦分离了就没法再使用了。

            range.detach(); /从文档中分离
            range = null; //解除引用

    以上都是个人陋闻,如有问题有劳指正,大家共同学习共同进步。如果有帮助到您,希望您能给动个小手点一下右下方的推荐,谢谢。

  • 相关阅读:
    URIError: Failed to decode param '/%PUBLIC_URL%/favicon.ico'
    Shiro授权管理
    Unable to execute 'doFinal' with cipher instance
    Shiro登录认证
    Shiro权限管理框架
    如此工作
    https真的安全吗,加密登录其实不简单
    奔波中,还是否记得来时路?
    最是伤情
    奈何桥上经过的地方,看醒了多少人
  • 原文地址:https://www.cnblogs.com/yuqiuyeyun/p/11046729.html
Copyright © 2011-2022 走看看