jQuery - 悬停时复制文本 <textarea>

标签 jquery copy textarea

我可以复制 <textarea> 中的文本在 this example 。但在我将该代码简化为以下代码之后:

$('textarea').mouseout(function(){
  $('textarea').blur();
});

$('textarea').mouseover(function(){
  $(this).focus();
  $(this).select();
  document.execCommand('copy');
});
textarea {
    margin-left: 15px;
    margin-right: 15px;
    width: 200px;
    height: 17.5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
BLABLABLA<textarea>Hover me, I am special!</textarea>BLABLABLA<br/>
<input placeholder="Paste me here!"></input>

我可以选择 <textarea> 中的文本但不复制文本。我尝试过:

  1. $(this)[0].execCommand('copy');

  2. $(this).execCommand('copy');

  3. this.execCommand('copy');

  4. document.execCommand('copy');

请帮助我。谢谢。

最佳答案

嗯,浏览器实现中似乎有一些东西(使用 Blink 537.36 测试)根据调用类型以不同方式处理复制命令。如果我使用 click 事件,内容将被复制。但是,如果我使用 mouseover 事件尝试此操作,则不会复制内容。

var ta = document.getElementById('copy-test');

var copyHandler = function(event) {
    event.target.select();
    var status = document.execCommand('copy', false);
    console.log( status ); // Only for testing
};

ta.addEventListener('mouseover', copyHandler);

ta.addEventListener('click', copyHandler);
<textarea id="copy-test">Hello World!</textarea>

关于jQuery - 悬停时复制文本 &lt;textarea&gt;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40996415/

相关文章:

Android 如何在 TextView 或任何内容中打印数组

javascript - jQuery 切换/slideDown/slideUp 未按预期工作

jquery - IE 尝试从 EE 和 jQuery 表单插件下载 json 响应

jquery - 消除部分 View MVC 3 Razor 中的重复 ID

postgresql - pgAdmin3 : Using query results to COPY files

javascript - Textarea 中的标签和后标签

jQuery Mobile - 相对链接 - 基本标签错误

java - 复制文件时在文件扩展名前附加 "Copy"

csv - 从 csv 文件复制 cassandra 表

javascript - 展开/折叠文本区域问题