js 原生 剪切板 复制功能
js 原生 剪切板 复制功能
// 直接使用这个代码,完全不依赖任何外部库
(function() {
'use strict';
// 等待所有资源加载完成
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
setTimeout(init, 1000);
}
function init() {
// 设置按钮1:复制股票代码
setupCopy('#copybuttontechnical', function() {
var result = [];
$('.codetoday, .code').each(function() {
var text = $(this).text().trim();
var parts = text.split(':');
result.push(parts.length > 2 ? parts[2] : text);
});
return result.join('\n');
}, '股票代码');
// 设置按钮2:复制完整信息
setupCopy('#copybuttontechnicalall', function() {
var target = $('#technical_pageFormContent');
if (!target.length) return '';
var element = target[0];
return element.innerText || element.textContent;
}, '完整信息');
}
function setupCopy(selector, getText, description) {
var button = $(selector);
if (!button.length) return;
button.off('click.copy').on('click.copy', function(e) {
e.preventDefault();
e.stopPropagation();
var text = getText();
if (!text || text.trim() === '') {
alert('没有内容可复制');
return;
}
if (copyText(text)) {
alert(description + '已复制到剪贴板!');
} else {
alert('复制失败,请手动选择文本复制');
}
});
}
function copyText(text) {
var temp = $('<textarea>').css({
position: 'fixed',
left: '-9999px',
top: '0',
opacity: '0'
}).val(text).appendTo('body');
temp[0].select();
temp[0].setSelectionRange(0, 99999);
var success = false;
try {
success = document.execCommand('copy');
} catch (err) {
// 静默失败
}
temp.remove();
return success;
}
})();
浙公网安备 33010602011771号