js复制内容到剪贴板

在JavaScript中,复制内容到剪贴板可以使用 Clipboard API(现代浏览器支持)或通过创建隐藏的textarea元素并调用其select()和execCommand('copy')方法。

使用Clipboard API(适用于现代浏览器,如Chrome 43+、Firefox 42+、Edge、Safari 10+等):

js 复制代码
navigator.clipboard.writeText('要复制的内容').then(() => {
    console.log('内容已复制到剪贴板');
}, () => {
    console.error('无法复制到剪贴板');
});

使用document.execCommand('copy')(兼容更多老版本浏览器,但部分功能已被废弃):

js 复制代码
function copyToClipboard(text) {
    // 创建一个隐藏的textarea
    var textarea = document.createElement('textarea');
    textarea.style.position = 'absolute';
    textarea.style.left = '-9999px';

    // 将要复制的内容写入textarea
    textarea.value = text;

    // 将textarea添加到DOM树中,以便能执行选择和复制命令
    document.body.appendChild(textarea);

    // 选中文本
    textarea.select();

    try {
        // 执行复制操作
        document.execCommand('copy');
        console.log('内容已复制到剪贴板');
    } catch (e) {
        console.error('无法复制到剪贴板', e);
    }

    // 删除临时创建的textarea元素
    document.body.removeChild(textarea);
}

// 使用函数
copyToClipboard('要复制的内容');

请注意,由于安全性和隐私保护的原因,某些情况下浏览器可能会限制对剪贴板的访问,特别是在无用户交互的情况下。因此,在实际应用时,建议在用户触发某个事件(例如点击按钮)后执行复制操作。

相关推荐
行者96几秒前
Flutter适配OpenHarmony:高效数据筛选组件的设计与实现
开发语言·前端·flutter·harmonyos·鸿蒙
xwill*2 分钟前
wandb的使用方法,以navrl为例
开发语言·python·深度学习
Van_Moonlight5 分钟前
RN for OpenHarmony 实战 TodoList 项目:底部 Tab 栏
javascript·开源·harmonyos
Van_Moonlight6 分钟前
RN for OpenHarmony 实战 TodoList 项目:浮动添加按钮 FAB
javascript·开源·harmonyos
编程大师哥7 分钟前
Java 常见异常(按「运行时 / 编译时」分类)
java·开发语言
frontend_frank10 分钟前
脱离 Electron autoUpdater:uni-app跨端更新:Windows+Android统一实现方案
android·前端·javascript·electron·uni-app
wulijuan88866614 分钟前
BroadcastChannel API 同源的多个标签页可以使用 BroadcastChannel 进行通讯
前端·javascript·vue.js
bybitq15 分钟前
Leetcode131题解 -Python-回溯+cache缓存
开发语言·python
kilito_0119 分钟前
数字时钟翻页效果
javascript·css·css3
Van_Moonlight19 分钟前
RN for OpenHarmony 实战 TodoList 项目:今日任务数量统计
javascript·开源·harmonyos