图片剪切板粘贴与预期不符合
本帖最后由 Ellia.Duan 于 2023-12-1 16:31 编辑产品:SpreadJS
版本:v16.1.0
问题编号:SJS-21213
在https://demo.grapecity.com.cn/SpreadJS/WebDesigner/index.html上传一张浮动图片,快捷键复制该图片,此时从外部(通过截图工具或者微信截图工具快捷键)截一张图存入系统剪切板,粘贴的时候只出来框架的图片,没有粘贴出系统快捷键的图片,咱们有解决方案嘛
您好,这个问题涉及到了两个剪切板,一个是SpreadJS内部的剪切板,一个是操作系统的剪切板。在SpreadJS复制图片后,再去外部复制内容SpreadJS的机制是优先处理内部的剪切板,所以粘贴出来的是图片。
您可以在工作簿复制图片后或在外部内容粘贴前,利用Esc键清除Spread剪切板的中的内容再进行粘贴 本帖最后由 拾趣ヾ 于 2023-11-13 16:31 编辑
这个问题咱们有具体解决方案嘛,对上面的描述我有三点疑问。
问题1:工作簿复制图片后清除spread剪贴板,连续粘贴会有影响嘛。
问题2:在外部内容粘贴前,如何能知道是外部粘贴呢。
问题3:对于Esc键清除Spread剪切板的中的内容,咱们有API嘛 您好,
关于问题一是否可以详细描述下,或者录个动图上来
问题二 ,spread有一个ClipboardChanged事件,当剪切板发生变化时可以触发此事件。
上述操作中,”此时从外部(通过截图工具或者微信截图工具快捷键)截一张图存入系统剪切板“此操作并不会触发ClipboardChanged事件。
当执行ctrl+v时,直接获取内部剪切板的图片。
spread.bind(GC.Spread.Sheets.Events.ClipboardChanged, function (sender, args) {
console.log("ClipboardChanged.", args);
});
我们将深入调研下此原因,待有进展,会及时联系您。 好的,等待咱们的好消息 {:5_111:} 本帖最后由 AlexZ 于 2024-2-5 09:50 编辑
您好,调研后发现上述问题“先粘贴SpreadJS的图片,再粘贴外部图片。此时复制后,发现是外部图片” 目前属于Design , 建议您使用Esc键取消粘贴SpreadJS的图片的行为后,再去复制外部图片。 请看第一条评论 关于问题一是否可以详细描述下,或者录个动图上来。不太明白您的连续粘贴是粘贴内部图片还是外部图片?
问题二 ,您的问题是想问,如何确定是内部粘贴,还是外部粘贴吗?
内部粘贴会触发ClipboardChanged事件,此时内部剪切板发生变化,新增了一条。
如果是外部粘贴,会触发系统剪切板。
如果发现内部剪切板和外部剪切板不一致,可以执行Esc,
问题三:
目前没有相关API,需要调研下如何清除剪切板中的内容,关于这点会尽快回复您。
您好,关于第三点,您可以执行下面的代码取消剪切板内容
spread.commandManager().execute({cmd:"cancelInput", sheetName:spread.getActiveSheet().name()});
可以参考下面的动图:
页:
[1]
2