本帖最后由 最佳原创 于 2023-10-19 12:02 编辑
今天使用使用了复制到剪贴板 这个命令,发现复制多行文本的时候会丢失换行符,导致多行文本实际复制到剪贴板的文本变成了单行
要复制的文本:
1
2
3
复制后的文本:
123
然后论坛搜了一下,发现了一个去年的帖子
复制到剪贴板插件 无法复制回车及换行符,能否处理下
一年多了,作者也没修复这个问题(可能反应的人少吧)
然后简单看了一下其他人发的类似帖子,总感觉不太完美,那就自己动手撸吧
我这个人呢,离开百度搜索不会编程,于是乎决定找ai帮忙(懒得自己搜代码)
(懒得开科技,我觉得嘛,这种小事用文心一言完全能胜任了)
AI给了两个结果,一个老式方法,一个最新的api
把这两个示例丢到浏览器控制台测试了一下
测试最新的发现无法使用(我用的最新的edge浏览器)
然后测试第一个老版本的方式可以用,嘿嘿
代码很简单 , 简单修改了一下给他加上返回值(用于判断成功与否)
以下代码可以直接拿去构造自己的复制到剪贴板命令了
- function copyToClipboard(text) {
- var dummy = document.createElement("textarea");
- document.body.appendChild(dummy);
- dummy.innerHTML = text;
- dummy.select();
- var success = document.execCommand('copy');
- document.body.removeChild(dummy);
- return success;
- }
- var str =Forguncy.CommandHelper.getVariableValue("要复制的文本")
- if(copyToClipboard(str)) {
- Forguncy.CommandHelper.setVariableValue("复制结果", "复制成功")
- } else {
- Forguncy.CommandHelper.setVariableValue("复制结果", "复制失败")
- }
复制代码1-9行: 定义一个名为"copyToClipboard"的函数,功能:把文本复制到剪贴板的
11行: 读取活字格命令变量中的文本
12行: 调用"copyToClipboard"函数把文本复制到剪贴板,并且判断复制结果
13行: 复制成功>把"复制成功"保存到名为"复制结果"的变量中
15行: 复制失败>把"复制失败"保存到名为"复制结果"的变量中
演示文件自取 :
复制到剪贴板.fgcc
(1.3 MB, 下载次数: 619)
|