• 关于 移动端实现 点击按钮复制指定内容到剪切板 的坑


    最近项目中遇到一个需求 :

        html5页面 点击立即邀请出现分享弹窗   然后点击复制链接区域复制 自定义链接(拼接网站注册链接 + 邀请码) 到剪切板   如图:

    在网上搜到   clipboard.js  可实现需求 。

    clipboard.js  GitHub:https://github.com/zenorocha/clipboard.js       网址:https://clipboardjs.com/

    此插件 使用纯 JavaScript (无需 Flash)实现了复制浏览器内容到系统剪切板的功能,可以在浏览器和 Node 环境中使用。支持 Chrome 42+、Firefox 41+、IE 9+、Opera 29+。

    项目代码 :弹框 和 实现copy部分

      最后将 链接插入#foo 中,如图

     

     实现需求:弹框出现时,button 定位覆盖 点击区域

     ======================================================================================

      

     还原原形如下:

    html 部分:

    <p id="foo">这里是复制内容</p>
    <button class="btn" data-clipboard-target="#foo" aria-label="复制成功!"></button>

    js 部分:

    <script type="text/javascript" src="../public/js/clipboard.min.js"></script>

    <script type="text/javascript">

      var clipboard = new Clipboard('.btn');

    </script>

    坑(移动端遇到的问题):

    1:上述  p 标签 不能 隐藏 ——隐藏会导致复制失效(可以用tex-indent 隐藏内容,或者 改变文字颜色为页面底色 来hack)

    2:上边html 内容 不能出现在弹窗中————导致复制失效   

      此处弹窗

      a:用定位 到屏幕外侧 (left:-200%;),出现弹窗(left:0;)实现的,html 内容 在弹窗中 复制也会失效。

      b: 用 display:none; display:"block; 实现 同1

    3: 不能用 trigger(“click")模拟 来触发 .btn 实现复制——导致复制失效 

  • 相关阅读:
    STM32-使用软件模拟I2C读写外部EEPROM(AT24C02)
    STM32-软件模拟I2C
    STM32_使用DAC输出三角波
    VS常用快捷键
    C语言volatile关键字在单片机中的作用
    如何使用数据库引擎优化顾问优化数据库(转)
    SQLServer数据库慢查询追踪
    怎么获取基金净值数据?(科普)
    解决了一个ssh登录缓慢的问题
    oracle存储过程转达梦8存储过程时踩过的坑2(完结篇)
  • 原文地址:https://www.cnblogs.com/xiaomaotao/p/6742299.html
Copyright © 2020-2023  润新知