复制文本到剪贴板(跨平台兼容)

news/2025/12/24 16:28:00/文章来源:https://www.cnblogs.com/boshaoyun/p/19373592

/**
* 复制文本到剪贴板(跨平台兼容)
* @param text 要复制的文本
* @returns 是否成功
*/
static async copyToClipboard(textData: string): Promise {
try {
// 首先尝试现代剪贴板API
if (navigator.clipboard && navigator.clipboard.writeText) {
try {
await navigator.clipboard.writeText(textData);
console.log('[SandBlockEditorUtils] 使用现代剪贴板API复制成功');
return;
} catch (clipboardError) {
console.warn('[SandBlockEditorUtils] 现代剪贴板API失败,尝试备用方案:', clipboardError);
// 如果是焦点问题,尝试先获取焦点
if (clipboardError.name === 'NotAllowedError') {
// eslint-disable-next-line
try {
// 尝试获取焦点
window.focus();
document.body.focus();
await new Promise((resolve) => setTimeout(resolve, 100)); // 等待100ms
await navigator.clipboard.writeText(textData);
console.log('[SandBlockEditorUtils] 获取焦点后复制成功');
return;
} catch (retryError) {
console.warn('[SandBlockEditorUtils] 重试后仍失败,使用传统方法:', retryError);
}
}
}
}

        // 回退方案:使用传统的execCommand方法console.log('[SandBlockEditorUtils] 使用传统复制方法');const textArea = document.createElement('textarea');textArea.value = textData;textArea.style.position = 'fixed';textArea.style.left = '-9999px';textArea.style.top = '-9999px';document.body.appendChild(textArea);textArea.focus();textArea.select();const successful = document.execCommand('copy');document.body.removeChild(textArea);if (!successful) {throw new Error('传统复制方法也失败了');}console.log('[SandBlockEditorUtils] 传统复制方法成功');} catch (error) {console.error('[SandBlockEditorUtils] 所有复制方法都失败了:', error);throw error;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1040240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

写在二战考试前一晚

写在二战考试前一晚记得去年这个时候我和室友因为酒店昏暗的灯光,在旁边的饭店里背政治。去年这个时候一切都是未知,即使有人陪伴,心里任是各种不安焦虑。但是今年,我一个人来到离我家几十公里却从未到访的城市的酒…

速度表情用语中外文对照表

largo (宽广的,广板) lento(缓慢的) adagio(从容的,柔板) andente(行走的速度,行板) andantino(比行板稍快,小行板) moderato(中速的,中板) allearetto(比快板稍慢,小快板) allegro(快板) vivace…

分享文件:charles-proxy-4.6.3-win64.msi

分享文件:charles-proxy-4.6.3-win64.msi链接:https://pan.xunlei.com/s/VOgqhBTzFLCqTiUFHMj24PC9A1?pwd=cxi7#复制这段内容后打开迅雷,查看更方便 注册信息:TEAM MESMERiZEFC91D362FB19D6E6CF

git如何撤销某个冲突的解决

你想撤销已经处理过的冲突解决(比如解决错了、想重新处理),核心思路是让冲突文件回到「未解决冲突」的原始状态,Git 提供了明确的命令来实现这个需求,下面分「已执行 git add 标记解决」和「仅手动修改但未 add」…

关于本站

本站由汤沐辰于2025年12月19日独立开发,望大家提出更正意见

2025年12月金包银品牌TOP10品牌:工艺/品控/售后三维分析,新手避坑首选 - 小白条111

2025年12月金包银品牌TOP10品牌:工艺/品控/售后三维分析,新手避坑首选随着国际金价持续高位(2025年10月京报网数据显示纯金单价达1245元/克),金包银珠宝凭借“千元享万元质感”的高性价比成为消费热点。但南方网2…

物理验证:你选哪款 DRC/LVS

“物理验证是通往 tape-out 的最后一关。” 当工艺推进至 7 nm、5 nm 乃至更先进节点,设计规则变得愈发复杂、模块层级更多、混合信号/3D 封装挑战加剧。此时, DRC (Design Rule Check) 与 LVS (Layout Versus Sche…

夕花朝逝

主要用来记录每天犯的神仙错误。。。 25.12.19 lca函数返回值写循环里面了 和李柏延@pm_fp调了30min才过"——敬不完美的明天""——敬不再沉默的历史,热烈而勇敢的奔赴,和通往所以未来的旅途"&q…

赫斯特 (Hurst)计算——重标极差法(R/S法)

基本概念赫斯特 (Hurst)指数:介于0到1之间的标量,度量时间序列的趋势持续性(惯性) 判读规则:H > 0.5:序列有持续性(长程正相关) H = 0.5:序列为无记忆随机游走 H < 0.5:序列有反持续性(长程负相关)核…

2025年12月中医馆,昆明中医,云南中医馆推荐:行业权威盘点与品质诊疗红榜发布 - 品牌鉴赏师

引言在 2025 年 12 月的今天,中医行业在健康领域的重要性愈发凸显。国内相关行业协会通过一系列科学测评,发布了权威数据和白皮书,为大众在选择中医馆时提供了重要参考。本次测评依据多维度标准,涵盖技术实力、人才…

Android ALSA驱动进阶之获取周期帧数snd_pcm_lib_period_frames:用法实例(九十五) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

从研究问题到分析初稿:深度解析PaperXie AI科研工具中数据分析模块在学术写作场景下的辅助逻辑与技能实现路径

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

英语_阅读_Incorrect beliefs_待读

Has anyone ever told you that eating carrots will help you see in the dark?有人曾告诉你吃胡萝卜能帮助你在黑暗中看见吗? This is just one of many incorrect beliefs you may have heard.这只是你可能听过的…

详细介绍:Golang Cobra 教程:构建强大的CLI应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Unity 拖动物体技术文档

📌 前提条件场景中必须有 EventSystem(除非使用 OnMouseDrag)。 拖拽目标必须能被事件系统或物理系统检测到:UI 元素:Canvas + GraphicRaycaster。 3D 物体:Collider + Camera 上的 PhysicsRaycaster。🖼 拖拽…

基于深度学习的非机动车头盔检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)

本文介绍了一个基于YOLO算法的非机动车头盔检测系统,通过深度学习技术实现骑行安全监测。系统采用PyQt5前端界面和SQLite数据库,支持图片、视频及实时摄像头的多模态检测,具备模型切换、参数调节和结果统计功能。核…

12.19每日总结

今天的主要课程是机器学习,以及软件设计的结业考试,上午考试还算比较顺利,背的东西考到了很多,但是我着重背的重点内容没有全考,没太注重的四颗星级以下的内容考了一些,有些不熟练但也够了。下午课上做完了机器学…

研究生必备:7款免费AI论文生成器,效率飙升200%,告别拖延 - 麟书学长

本文为研究生提供7款免费或高性价比AI论文神器,助其解决论文写作难题。如鲲鹏智写可30分钟生成初稿、解析导师意见、双保险降重等;瑞达写作适合复杂论文类型。文章剖析了研究生写论文的痛点,详解各工具特点与适用场…

OOP-实验六

OOP-实验六 一、任务1 1.源代码contestant.cpp #pragma once #include <iomanip> #include <iostream> #include <string>struct Contestant {long id; // 学号std::string nam…