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

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

    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 实现复制——导致复制失效 

 

posted @ 2017-04-21 10:31  yanye411325  阅读(1075)  评论(0编辑  收藏  举报