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;

}

})();

posted @ 2026-01-10 20:00  锐洋智能  阅读(6)  评论(0)    收藏  举报