找回密码
 立即注册

QQ登录

只需一步,快速开始

最佳原创
中级会员   /  发表于:2023-10-11 22:09  /   查看:2215  /  回复:5
本帖最后由 最佳原创 于 2023-10-19 12:02 编辑

今天使用使用了复制到剪贴板 这个命令,发现复制多行文本的时候会丢失换行符,导致多行文本实际复制到剪贴板的文本变成了单行
要复制的文本:
1
2
3

复制后的文本:
123

然后论坛搜了一下,发现了一个去年的帖子
复制到剪贴板插件 无法复制回车及换行符,能否处理下
一年多了,作者也没修复这个问题(可能反应的人少吧)

然后简单看了一下其他人发的类似帖子,总感觉不太完美,那就自己动手撸吧
image.png831263732.png
我这个人呢,离开百度搜索不会编程,于是乎决定找ai帮忙(懒得自己搜代码)
image.png450557250.png
(懒得开科技,我觉得嘛,这种小事用文心一言完全能胜任了)
AI给了两个结果,一个老式方法,一个最新的api
把这两个示例丢到浏览器控制台测试了一下
测试最新的发现无法使用(我用的最新的edge浏览器)
然后测试第一个老版本的方式可以用,嘿嘿

代码很简单 , 简单修改了一下给他加上返回值(用于判断成功与否)

    以下代码可以直接拿去构造自己的复制到剪贴板命令了
  1. function copyToClipboard(text) {  
  2.     var dummy = document.createElement("textarea");  
  3.     document.body.appendChild(dummy);  
  4.     dummy.innerHTML = text;  
  5.     dummy.select();  
  6.     var success = document.execCommand('copy');  
  7.     document.body.removeChild(dummy);  
  8.     return success;
  9. }  

  10. var str =Forguncy.CommandHelper.getVariableValue("要复制的文本")
  11. if(copyToClipboard(str)) {
  12.         Forguncy.CommandHelper.setVariableValue("复制结果", "复制成功")
  13. } else {
  14.     Forguncy.CommandHelper.setVariableValue("复制结果", "复制失败")
  15. }
复制代码
1-9行: 定义一个名为"copyToClipboard"的函数,功能:把文本复制到剪贴板的
11行: 读取活字格命令变量中的文本
12行: 调用"copyToClipboard"函数把文本复制到剪贴板,并且判断复制结果
13行: 复制成功>把"复制成功"保存到名为"复制结果"的变量中
15行: 复制失败>把"复制失败"保存到名为"复制结果"的变量中

image.png254085997.png

演示文件自取 : 复制到剪贴板.fgcc (1.3 MB, 下载次数: 535)

评分

参与人数 1金币 +10 收起 理由
Shawn.Liu + 10 赞一个!

查看全部评分

5 个回复

倒序浏览
gczxxu
银牌会员   /  发表于:2023-10-13 19:03:56
沙发
需要这么复杂吗??
回复 使用道具 举报
最佳原创
中级会员   /  发表于:2023-10-13 20:02:41
板凳
gczxxu 发表于 2023-10-13 19:03
需要这么复杂吗??

大佬见笑了
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2023-10-14 21:03:37
地板


送你一个脚本:
支持浏览器原生复制,当然你说的多行的问题也就不存在了。
如果嫌麻烦,放到命令模板里用,再不然,就这几行代码,自己按官方样例封装个插件。
var cell = Forguncy.Page.getCell("单据编号");
var cellValue = cell.getValue();
navigator.clipboard.writeText(cellValue);
KPUYTH[}EM4KY{25D8)BBS5.png324480895.png
回复 使用道具 举报
最佳原创
中级会员   /  发表于:2023-10-15 15:03:38
5#
本帖最后由 最佳原创 于 2023-10-15 15:23 编辑
gczxxu 发表于 2023-10-14 21:03
送你一个脚本:
支持浏览器原生复制,当然你说的多行的问题也就不存在了。
如果嫌麻烦,放到命令模板 ...

这个原生api在文章中提到过,由于考虑浏览器兼容,所以没有采用,

当然我测试存在问题,因为这个api直接在浏览器控制台中使用时不被允许的
image.png139550780.png

综合考虑来看,使用老方法似乎更靠谱一点
image.png289374083.png
回复 使用道具 举报
gczxxu
银牌会员   /  发表于:2023-10-15 21:10:43
6#
最佳原创 发表于 2023-10-15 15:03
这个原生api在文章中提到过,由于考虑浏览器兼容,所以没有采用,

当然我测试存在问题,因为这个api直接在 ...

哦。。。我一直用在按钮中的。感谢提醒。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部