我可以使用javascript粘贴到onClick的输入字段中

问题描述 投票:0回答:1

另一个用户帮助我使用这个很好的脚本,它允许我单击一个表格单元格,其内容将复制到剪贴板。我不完全理解它,但它有效...我想现在为这个程序添加一些东西。这是原始程序首先..

document.addEventListener('click', (e) => {
  let target = e.target;

  if(target.localName === 'td') {
  let range = document.createRange();
  range.selectNodeContents(target);  
  let sel= document.getSelection(); 
  sel.removeAllRanges(); 
  sel.addRange(range); 
  document.execCommand('copy');
  sel.removeAllRanges();
  target.classList.add('copy-animate');
  setTimeout(() => {target.classList.remove('copy-animate');}, 300);
  }
});
.copy-animate {background:#F00}
td {cursor:pointer;border:1px solid black}
input {border:1px solid black;width:200px}
Click a table cell to copy<br>
<table><td>milk</td><td>bread</td><td>eggs</td><td>cheese</td></table>

<br>This is the pasting area.  Try pasting here.<br>
<input type="text">

上面的程序听取TD的点击并复制它。我现在想让它听取INPUT的点击,如果发生这种情况,请做一个粘贴。我想我可以添加一个类似下面的IF语句,但它没有用。请帮忙。所以最终结果应该允许我只需点击两下就可以从表格单元格复制到输入字段。我不想右键单击并从菜单中选择粘贴,或使用CTRL-V。

 if(target.localName === 'input') {
  let range = document.createRange();
  range.selectNodeContents(target);  
  let sel= document.getSelection(); 
  sel.removeAllRanges(); 
  sel.addRange(range); 
  document.execCommand('paste');
  sel.removeAllRanges();
  }
javascript html clipboard copy-paste paste
1个回答
2
投票

据我所知,你不能以编程方式在js中粘贴。这是一项安全措施。

你可以做的是跟踪具有焦点的元素并监听复制事件。然后,您可以检查原始元素的输入值或innerHTML,并获取放入目标元素的内容。

© www.soinside.com 2019 - 2024. All rights reserved.