JavaScript复制文本到剪贴板
native方法
window.copy("123456789");
window.copy([111,222,333]);
window.copy({aaa:"aaa",bbb:"bbb"});
借助textarea元素
class TzUtil {
static copy(text) {
if (typeof text == 'object') {
text = JSON.stringify(text);
}
let element = document.createElement('textarea');
element.value = text;
element.style.position = 'fixed';
element.style.top = '0px';
element.style.left = '-9999px';
element.style.width = '100px';
element.style.height = '100px';
element.style.zIndex = '-9999';
document.body.appendChild(element);
element.select();
let flag = false;
if (document.execCommand('copy')) {
flag = true;
document.execCommand('copy');
}
document.body.removeChild(element);
if (!flag) {
console.error('copy失败\n' + text);
}
return flag;
}
}
TzUtil.copy(xxxxx);
ClipboardJS库
try {
console.log('[tzExtension-util-startClipboardJS]', 'startClipboardJS');
let tzClipboard = new ClipboardJS('.tzextension-copy');
tzClipboard.on('success', function (e) {
console.log('[tzExtension-util-startClipboardJS]', 'copy成功\n', e.text);
});
tzClipboard.on('error', function (e) {
console.error('[tzExtension-util-startClipboardJS]', 'copy失败\n', e);
});
} catch (error) {
console.error('[tzExtension-util-startClipboardJS]', "捕获到异常\n", error);
}
window.tzExtension.util.addButtonForCopy = function (ele, text) {
try {
console.log('[tzExtension-util-addButtonForCopy]', '\n', ele, '\n', text);
if (!ele || ele.length < 1) { return }
if (!text) { text = ele.text() }
ele.after($('<button>', {
'class': 'tzextension-copy',
'title': text.trim(),
'data-clipboard-text': text.trim()
}).text('tzExtension复制'));
} catch (error) {
console.error('[tzExtension-util-addButtonForCopy]', "捕获到异常\n", error);
}
};
示例:点击元素复制其文本
(function () {
console.clear();
$(document.body).on("click", `div.xxxxx`, function () {
let text = $(this).text().trim();
let res = TzUtil.copy(text);
if (res) {
console.log(`复制成功:\n${text}`);
} else {
console.error(`复制失败:\n${text}`);
}
});
})();
作者博客首页:https://blog.csdn.net/qq_43111676?type=blog