如何将var复制到剪贴板? 它总是返回:未捕获的TypeError:copyText.select不是函数
function copy() {
var allDesCode2 = document.getElementsByClassName("desCode2");
var copyText = "ABC";
for(var i=0; i<allDesCode2.length; i++){
copyText += allDesCode2[i].innerHTML;
}
copyText.select();
document.execCommand("copy");
}
答案 0 :(得分:2)
此copy()
函数可帮助从变量复制字符串,您可以在纯JavaScript 中使用此方法,而无需任何库的帮助,例如jQuery
function copy() {
var copyText = "Hooray ! I will be copied";
var el = document.createElement('textarea');
el.value = copyText;
el.setAttribute('readonly', '');
el.style = {
position: 'absolute',
left: '-9999px'
};
document.body.appendChild(el);
el.select();
document.execCommand('copy');
document.body.removeChild(el);
}
<button onclick="copy()">Copy</button>
答案 1 :(得分:1)
您只是尝试选择没有任何输入错误的文本。另外,我只是读取复制事件必须在click事件内部(也许复制REFERENCE还有更多事件)
我在div上附加了复制功能,并将其html输入,然后将其复制
function copy() {
var allDesCode2 = document.getElementsByClassName("desCode2");
var copyText = "ABC";
for (var i = 0; i < allDesCode2.length; i++) {
copyText += allDesCode2[i].innerHTML;
}
$('input').val(copyText).select();
document.execCommand('copy');
}
$('.desCode2').on('click',copy);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="desCode2">123123123123</div>
<input>
答案 2 :(得分:0)
function copyToClipboard(text) {
var fallbackHandler = responseFunction => {
var cheat = document.createElement('textarea');
cheat.value = text;
cheat.select();
if (document.execCommand('copy')) {
cheat.remove();
responseFunction(true);
}
responseFunction(false);
};
var promiseHandler = res => {
if (!navigator || !navigator.clipboard || typeof navigator.clipboard.writeText !== 'function') {
fallbackHandler(res);
return;
}
navigator.clipboard.writeText(text)
.then(() => res(true), () => fallbackHandler(res));
};
return new Promise(promiseHandler, reject => reject(new Error('some Error')));
}
var allDesCode2 = document.getElementsByClassName("desCode2");
var copyText = ["ABC"];
for (var i = 0, e; e = allDesCode2[i]; i++) {
copyText.push(e.innerHTML);
}
copyToClipboard(copyText.join('')).then(b => {
if (!b) {
alert('Copy to Clipboard failed');
}
});
答案 3 :(得分:-1)
我假设您使用this article作为参考。但是在此示例中,.select()
元素上使用了<input>
,并且您试图在变量上执行此方法。
您可以查看this question(您的问题可能是这个问题的重复),它提供了许多有用的答案,将会为您提供帮助。