找回密码
 立即注册

QQ登录

只需一步,快速开始

木舟

注册会员

14

主题

49

帖子

153

积分

注册会员

积分
153
木舟
注册会员   /  发表于:2021-11-10 14:29  /   查看:2788  /  回复:11
本帖最后由 木舟 于 2021-11-10 14:37 编辑

QQ截图20211110142145.jpg
你好,如图所示,全部粘贴是默认自带的右键菜单,我想在点击全部粘贴的时候做一个弹窗的提示,这种应该如何处理呢?要自己重写一个粘贴菜单么?能不能在这个原有的菜单上面添加重写呢?

ps: 我知道内部复制粘贴可以监听的到粘贴事件来进一步弹窗操作,但是现在我需要外部复制,粘贴到这的话,粘贴事件貌似没办法触发,所以才有这样的需求

11 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-11 13:44:12
推荐
主要代码:
  1. var config = JSON.parse(JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig));
  2.                         var newPasteCommand = GC.Spread.Sheets.Designer.getCommand(GC.Spread.Sheets.Designer.CommandNames.DesignerPasteAll);
  3.                         if(newPasteCommand){
  4.                                 var oldExecute = newPasteCommand.execute;
  5.                                 newPasteCommand.execute = function(context, propertyName, args){
  6.                                     //添加confirm逻辑
  7.                                         alert("粘贴");
  8.                                        
  9.                                         oldExecute.call(this, context, propertyName, args)
  10.                                 }
  11.                         }
  12.                         config.commandMap = {};
  13.                         config.commandMap[GC.Spread.Sheets.Designer.CommandNames.DesignerPasteAll] = newPasteCommand;

  14.                         var d = new GC.Spread.Sheets.Designer.Designer(document.getElementById("gc-designer-container"), config);
复制代码


完整代码请参考附件demo

组件版设计器-重写右键菜单全部粘贴项.zip

2.11 MB, 下载次数: 34

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-10 15:10:53
沙发
您好,
右键菜单可以重写,
可以参考这篇文章:
https://gcdn.grapecity.com.cn/fo ... hread&tid=83813

不过,根据对您描述的理解,
您指的外部复制粘贴是
在SpreadJS外部按下 ctrl+c 进行复制,
期望通过点击 右键菜单重写的 全部粘贴项 实现粘贴吗?
如果是,那您的需求是不能实现的,
右键菜单复制粘贴项走的内部粘贴,
ctrl+c、ctrl+v走的是外部粘贴,
二者不可混用,即无法实现 ctrl+c 复制、右键菜单粘贴。

另,外部复制粘贴(ctrl+c、ctrl+v)是可以通过 ClipboardPasting 事件监听到的,
API如下:
https://demo.grapecity.com.cn/sp ... nt:ClipboardPasting


回复 使用道具 举报
木舟
注册会员   /  发表于:2021-11-10 15:35:16
板凳
本帖最后由 木舟 于 2021-11-10 15:37 编辑
Lynn.Dou 发表于 2021-11-10 15:10
您好,
右键菜单可以重写,
可以参考这篇文章:

外部复制的内容,通过快捷键ctrl+v是可以监听到粘贴事件的,但是在外部复制通过鼠标操作,右键菜单 粘贴全部 是没办法触发事件的吧?我想在用户使用鼠标粘贴的时候弹窗提示他使用快捷键粘贴,这个弹窗该如何实现
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-10 16:23:33
地板
“在外部复制通过鼠标操作,右键菜单 粘贴全部”
没有办法触发事件

“使用鼠标粘贴的时候弹窗提示他使用快捷键粘贴”
参考前面提供的链接文章-重写右键菜单,
demo中根据需要,在 execute 方法中添加弹窗相关代码,
如:
alert("请使用快捷键进行粘贴");
回复 使用道具 举报
木舟
注册会员   /  发表于:2021-11-10 16:34:02
5#
Lynn.Dou 发表于 2021-11-10 16:23
“在外部复制通过鼠标操作,右键菜单 粘贴全部”
没有办法触发事件

我刚看论坛说designer的右键菜单和spreadjs的右键菜单是不同的是么?刚才上面重写的例子是针对spreadjs右键菜单的是么?如果是那designer的右键菜单如何重写呢?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-10 17:32:45
6#
前面的例子是针对于SpreadJS的,
组件版设计器自定义右键菜单参考下方链接文章:
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=135288
回复 使用道具 举报
木舟
注册会员   /  发表于:2021-11-11 10:46:36
7#
Lynn.Dou 发表于 2021-11-10 17:32
前面的例子是针对于SpreadJS的,
组件版设计器自定义右键菜单参考下方链接文章:
https://gcdn.grapecity ...

我想在组件设计器原有粘贴功能的基础上添加判断操作,不是自己重新定义一个粘贴右键,在组件设计器的原粘贴功能上如何实现呢,或者能不能在原基础上重写?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-11 12:33:47
8#
这边尝试根据此需求整理一个demo,预计下午回复您。
回复 使用道具 举报
木舟
注册会员   /  发表于:2021-11-11 13:09:28
9#
Lynn.Dou 发表于 2021-11-11 12:33
这边尝试根据此需求整理一个demo,预计下午回复您。

好的, 谢谢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部