另一位用户帮助我编写了这个不错的脚本,该脚本允许我单击表格单元格,其内容将复制到剪贴板。我不完全理解它,但它有效......我现在想向这个程序添加一些东西。首先是原始程序..
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 上的点击并复制它。我现在想让它监听输入的点击,如果发生这种情况,则进行粘贴。我以为我可以添加一个类似的 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();
}
最佳答案
据我所知,你不能以编程方式在js中进行粘贴。这是一种安全措施。
您可以做的是跟踪具有焦点的元素并监听复制事件。然后,您可以检查原始元素的输入值或innerHTML,并以这种方式获取内容以放入目标元素中。
关于javascript - 我可以使用 javascript 将 onClick 粘贴到输入字段中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47878039/