选择并复制输入文本onclick?

时间:2016-03-24 22:09:39

标签: javascript

我实际上已经看到了一些关于此的问题,其中大部分来自至少5或6年前。

我想要一个输入框:

<input id="copy-text" type="text" value="Click this text!">

以下是我一直在尝试使用的JavaScript:

document.getElementById("copy-text").onclick = function() {
  this.select();
  execCommand('copy');
  alert('This is a test...');
}

我知道我的代码不起作用。如果我删除execCommand('copy');,则弹出alert(),但似乎在该行遇到错误。我也尝试过this.execCommand('copy');,不知道该怎么做。

小提琴:https://jsfiddle.net/6v24k4sk/

我的想法是,我希望用户单击输入框,它将选择所有文本,然后将其复制到剪贴板。

有什么想法吗?

2 个答案:

答案 0 :(得分:12)

您应该在execCommand前放置一个文档。

document.getElementById("copy-text").onclick = function() {
    this.select();
    document.execCommand('copy');
    alert('This is a test...');
}

在这里你可以找到一个有效的例子: https://jsfiddle.net/9q3c1k20/

编辑:

该函数还会返回浏览器是否支持此功能。我认为您应该检查该值,因为execCommand仍然没有最终规范,因此无法保证在所有浏览器中都有效。

答案 1 :(得分:0)

将此功能与您的 copy_btn 一起使用(不带 onclick 功能)。

function function_name() {
    var c = document.getElementById("copy");
    c.select();
    document.execCommand('copy');
}