如何在javascript中将数组复制到剪贴板
我有一个简单的函数,其中我尝试将数组传递到剪贴板,以便稍后粘贴到excel中如何在javascript中将数组复制到剪贴板,javascript,Javascript,我有一个简单的函数,其中我尝试将数组传递到剪贴板,以便稍后粘贴到excel中 hiddenInputOnCopyHandler = ev => { ev.clipboardData.setData('text/plain', ev.currentTarget.value.split(',')); ev.preventDefault(); }; 但是我得到的是一个字符串,我想是因为setData中传递的类型是“text/plain” 但我找不到比这更好的了 现在
hiddenInputOnCopyHandler = ev => {
ev.clipboardData.setData('text/plain', ev.currentTarget.value.split(','));
ev.preventDefault();
};
但是我得到的是一个字符串,我想是因为setData中传递的类型是“text/plain”
但我找不到比这更好的了
现在的问题是,当它粘贴到excel中时,整个序列化数组将只占用一个单元格
您应该尝试使用tab
\t
而不是逗号,
()
根据,您应该启动copy
命令将所选内容复制到剪贴板。您还应该检查浏览器兼容性
另外currentTarget.value
给出了未定义的值,因此您应该改用textContent
单击段落时,它会在copyAction
函数中触发copy
命令,然后eventListener
withcopy
事件执行hiddenInputonCopyHandler
函数
function init(){
let el = document.getElementById("CpToClip");
el.addEventListener('click',copyAction);
el.addEventListener('copy', hiddenInputOnCopyHandler);
}
function copyAction(){
document.execCommand('copy');
}
hiddenInputOnCopyHandler = ev => {
let copiedVal = ev.currentTarget.textContent.trim().split(',').join('\t');
console.log(copiedVal);// "HHHhhh" "mkjf" "Tendue" "Bonne" "10-07-2020" "khgkg@kjk.od"
ev.clipboardData.setData('text/plain', copiedVal);
ev.preventDefault();
}
addEventListener('load',init);
Html
2020年7月10日,波恩市坦杜市mkjf,khgkg@kjk.od
检查我的解决方案并让我知道。您希望剪贴板中的结果看起来像是数组元素集中在一起还是类似于[“a”、“b”、“c”]?是的,我希望它是类似于[“a”、“b”、“c”]的数组。您应该尝试使用tab
\t
而不是逗号,
,()ev.currentTarget.value.split(',')。join('\t')
谢谢@hgb123,请将您的评论改写为应答。我确实调用了document.execCommand('copy');但是它没有更新剪贴板内容,我不得不添加我在问题中提到的粘贴处理程序,以便在那里重新进行粘贴(最终成功)…@Bardelman从我的代码中可以看到,您应该单击p
标记以复制内容。你可以随意修改,检查我的更新答案。
function init(){
let el = document.getElementById("CpToClip");
el.addEventListener('click',copyAction);
el.addEventListener('copy', hiddenInputOnCopyHandler);
}
function copyAction(){
document.execCommand('copy');
}
hiddenInputOnCopyHandler = ev => {
let copiedVal = ev.currentTarget.textContent.trim().split(',').join('\t');
console.log(copiedVal);// "HHHhhh" "mkjf" "Tendue" "Bonne" "10-07-2020" "khgkg@kjk.od"
ev.clipboardData.setData('text/plain', copiedVal);
ev.preventDefault();
}
addEventListener('load',init);
<p id="CpToClip">
HHHhhh,mkjf,Tendue,Bonne,10-07-2020,khgkg@kjk.od
</p>