隐藏输入字段时,Jquery将文本复制到剪贴板

时间:2018-06-05 09:08:00

标签: javascript jquery

我想复制剪贴板中输入字段的内容

我的代码是

<button class="btn btn-default btn-xs copy-link" title="Copy Link"><i class="fa fa-copy"></i></button>
<input type="text" class="link" value="Hello World">

<script>
    $(document).on('click','.copy-link', function() {
        var copyText = $(this).siblings('.link');
        copyText.select();
        document.execCommand("copy");
        alert("Copied the text: " + copyText.val());
    });
</script>

此代码工作正常......

但我想隐藏输入字段。喜欢

 <button class="btn btn-default btn-xs copy-link" title="Copy Link"><i class="fa fa-copy"></i></button>
<input type="hidden" class="link" value="Hello World" />

然后该值没有处理相同的jquery ......

还有什么我想念的吗?

3 个答案:

答案 0 :(得分:2)

如果您可以将链接放入按钮中的链接属性,

我建议你:

  • 从HTML
  • 中删除input
  • 直接在函数
  • 中创建它

这是一个工作片段:

$(document).on('click', '.copy-link', function() {
  var link = $(this).attr('link');
  var tempInput = document.createElement("input");
  tempInput.style = "position: absolute; left: -1000px; top: -1000px";
  tempInput.value = link;
  document.body.appendChild(tempInput);
  tempInput.select();
  document.execCommand("copy");
  console.log("Copied the text:", tempInput.value);
  document.body.removeChild(tempInput);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">

<button class="btn btn-default btn-xs copy-link" title="Copy Link" link="Hello World"><i class="fa fa-copy"></i></button>

希望它有所帮助。

答案 1 :(得分:1)

尝试不透明度0; 这里肯定有用;)

<input type="text" class="link hidden" value="Hello World 2">
.hidden {
  position:absolute; top:-50px; opacity:0;
}
  

https://jsfiddle.net/o2gxgz9r/47741/

答案 2 :(得分:0)

应用下面提到的样式,然后使用相同的jquery代码。它会起作用。

public static String[] splitString(String code, int len) {
    String[] res = new String[(int)Math.ceil((double)code.length()/len)];
    for(int i = 0; i<res.length; i++){
        res[i] = code.substring(i*len, Math.min(code.length(), (i+1)*len));
    }
    return res;
}