码迷,mamicode.com
首页 > 其他好文 > 详细

点击复制功能 封装

时间:2020-02-01 12:51:58      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:UNC   指定   use   document   append   创建   ges   textarea   ios系统   

问题:

clipboardJS插件ios系统下页面复制失败问题

需要将点击目标的节点设置为 : 

<textArea></textArea>
才能复制成功

 

解决办法:
自己实现点击复制封装

//定义函数
window.Clipboard = (function(window, document, navigator) {
  var textArea,
      copy;

  // 判断是不是ios端
  function isOS() {
    return navigator.userAgent.match(/ipad|iphone/i);
  }
  //创建文本元素
  function createTextArea(text) {
    textArea = document.createElement(‘textArea‘);
    textArea.innerHTML = text;
    textArea.value = text;
    document.body.appendChild(textArea);
  }
  //选择内容
  function selectText() {
    var range,
        selection;

    if (isOS()) {
      range = document.createRange();//创建区间
      range.selectNodeContents(textArea);//选择textArea区间内的所有内容
      selection = window.getSelection();//获取被选择文本的内容或者范围
      selection.removeAllRanges();//清除掉被选择的文本,初始化
      selection.addRange(range);//将被选择的文本替换成为指定文本
      textArea.setSelectionRange(0, -1);//0  -1为全选  
    } else {
      textArea.select();
    }
  }

//复制到剪贴板         ,复制之后的操作
  function copyToClipboard() {        
    try{
      if(document.execCommand("Copy")){
        alert("复制成功!");  
      }else{
        alert("复制失败!请手动复制!");
      }
    }catch(err){
      alert("复制错误!请手动复制!")
    }
    document.body.removeChild(textArea);
  }

  copy = function(text) {
    createTextArea(text);
    selectText();
    copyToClipboard();
  };

  return {
    copy: copy
  };
})(window, document, navigator);    
            
//使用函数调用      点击‘.click-copy‘节点后  ,,复制".weixin"节点的文本到粘贴板
$(".click-copy").on("click",function(){
  var  val = $(".weixin").text();
  Clipboard.copy(val);
});    

 

点击复制功能 封装

标签:UNC   指定   use   document   append   创建   ges   textarea   ios系统   

原文地址:https://www.cnblogs.com/wxyblog/p/12247972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!