对比 ClipboardJS,功能全面升级
优先使用 Clipboard API,自动降级到 execCommand。HTTPS 与 HTTP 环境均可工作,兼容 IE9+。
支持 Blob、File、Image、Canvas、URL 多种图片源复制到剪贴板。ClipboardJS 不支持此功能。
同时复制 HTML + 纯文本,粘贴到 Word、邮件、富文本编辑器自动保留格式。
通过 onPaste 监听粘贴事件,自动解析文本、HTML、文件三种类型,支持事件委托。
History 类自动记录剪贴板变更,支持搜索、持久化存储,轻松实现历史记录功能。
onSync() 基于 BroadcastChannel 实现标签页间剪贴板操作同步,多窗口协作无感。
writeFormats() 一次写入多种 MIME 类型(text/plain + text/html),粘贴时自动适配目标格式。
浏览器 + Node.js 双环境运行。Node 端自动适配 clip (Win)、pbcopy (Mac)、xclip (Linux)。
完整的 .d.ts 类型定义,ESM 模块支持 tree-shaking。同时兼容 UMD / CommonJS / AMD。
点击按钮,直接试试效果
零依赖 的现代剪贴板工具库,支持 富文本 复制。
多种方式,随你选择
简洁直观,覆盖所有剪贴板场景
await NowClipboard.copy('Hello'); // 带重试配置 await NowClipboard.copy('Hello', { retries: 3, timeout: 5000 });
const text = await NowClipboard.read(); console.log('剪贴板内容:', text);
// 从 Canvas 复制 await NowClipboard.copyImage(canvas); // 从 URL 复制 await NowClipboard.copyImage('pic.png');
await NowClipboard.copyRich({ html: '<b>加粗</b>', text: '加粗' });
NowClipboard.onPaste(null, (data) => { console.log(data.text); console.log(data.html); console.log(data.files); });
const cb = new NowClipboard('.btn'); cb.on('success', e => { ... }); cb.on('error', e => { ... }); cb.destroy(); // 释放资源
// 等同于 copy() await NowClipboard.write('Hello'); // 带 AbortSignal const ctrl = new AbortController(); await NowClipboard.write('Hi', { signal: ctrl.signal });
// Canvas await NowClipboard.writeImage(canvas); // Blob await NowClipboard.writeImage(blob); // URL (浏览器自动获取) await NowClipboard.writeImage('img.png');
await NowClipboard.writeFormats({ 'text/plain': '纯文本', 'text/html': '<b>富文本</b>' });
const h = new NowClipboard.History({ pollInterval: 1000, maxItems: 100, persist: true }); h.start(); h.list(); // 所有记录 h.search('key'); // 搜索
const sync = NowClipboard.onSync(); sync.addListener((data) => { console.log('同步:', data.type); console.log('内容:', data.text); }); sync.destroy(); // 关闭