如何防止 javascript 将换行符复制到剪贴板?
How can I prevent javascript from copying a line break to clipboard?
我找到了一个程序,它允许我将数据从 div 复制到剪贴板。复制时,它会添加一个换行符,即使我的 div 中没有换行符。如何从副本中删除任何换行符。
function copyDivToClipboard(elem) {
var range = document.createRange();
range.selectNode(document.getElementById(elem));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
<div id='test'>This is a test</div>
<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>
您正在复制的 div
元素在 Javascript 复制它时包含换行符作为其文本内容的一部分。如果您改为使用 span
,您将不会得到带有文本的换行符。
而不是 range.selectNode
使用 range.selectNodeContents
function copyDivToClipboard(elem) {
var range = document.createRange();
range.selectNodeContents(document.getElementById(elem));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
<div id="test">
This is a test
</div>
<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>
我找到了一个程序,它允许我将数据从 div 复制到剪贴板。复制时,它会添加一个换行符,即使我的 div 中没有换行符。如何从副本中删除任何换行符。
function copyDivToClipboard(elem) {
var range = document.createRange();
range.selectNode(document.getElementById(elem));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
<div id='test'>This is a test</div>
<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>
您正在复制的 div
元素在 Javascript 复制它时包含换行符作为其文本内容的一部分。如果您改为使用 span
,您将不会得到带有文本的换行符。
而不是 range.selectNode
使用 range.selectNodeContents
function copyDivToClipboard(elem) {
var range = document.createRange();
range.selectNodeContents(document.getElementById(elem));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
<div id="test">
This is a test
</div>
<button onclick='copyDivToClipboard("test")'>Copy to clipboard</button>