js点击复制文本内容

Posted 深lin人不知

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js点击复制文本内容相关的知识,希望对你有一定的参考价值。

  没啥好说的,直接上代码:

/**
 * 复制文本内容
 * @param {*} cpStr 需要复制的文本内容
 */
function copyString (cpStr) {
  var orderNum = cpStr;
  // 数字没有 .length 不能执行selectText 需要转化成字符串
  var textString = orderNum.toString();
  var input = document.querySelector(‘#copy-input‘);
  if (!input) {
    input = document.createElement(‘input‘);
    input.id = "copy-input";
    input.readOnly = "readOnly";        // 防止ios聚焦触发键盘事件
    input.style.position = "absolute";
    input.style.left = "-1000px";
    input.style.zIndex = "-1000";
    document.body.appendChild(input)
  }

  input.value = textString;
  // ios必须先选中文字且不支持 input.select();
  selectText(input, 0, textString.length);
  console.log(document.execCommand(‘copy‘), ‘execCommand‘);
  if (document.execCommand(‘copy‘)) {
    document.execCommand(‘copy‘);
    utils.toasts(‘复制成功‘);
  }
  input.blur();

  // input自带的select()方法在苹果端无法进行选择,所以需要自己去写一个类似的方法
  // 选择文本。createTextRange(setSelectionRange)是input方法
  function selectText(textbox, startIndex, stopIndex) {
    if (textbox.createTextRange) {//ie
      var range = textbox.createTextRange();
      range.collapse(true);
      range.moveStart(‘character‘, startIndex);//起始光标
      range.moveEnd(‘character‘, stopIndex - startIndex);//结束光标
      range.select();//不兼容苹果
    } else {//firefox/chrome
      textbox.setSelectionRange(startIndex, stopIndex);
      textbox.focus();
    }
  }
}


// 复制单号
$(‘#copy-btn‘).on(‘click‘, function () {
  var copyString = ‘123456‘;
  // 复制文本内容
  copyString(copyString);
})

  ios和android都是可以使用的~

 

  

 

以上是关于js点击复制文本内容的主要内容,如果未能解决你的问题,请参考以下文章

vue 实现点击复制文本

JS复制文本到粘贴板,前端H5移动端点击按钮复制文本

复制MFC文本框内容到剪切板方法?

js实现点击内容到文本框再点击更换内容

jquery复制文本到windows剪贴板的方法,jquery copy.js插件怎么用。

如何调用本地js文件为网页文本框输入内容