请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

nutstore
金牌服务用户   /  发表于:2023-9-18 16:43  /   查看:159  /  回复:26
image.png484999389.png
image.png77101744.png

我原来是这种在写法在不带有designer的spreadjs当中可以正常看到新增了一个  插入文件 的菜单项。但是在带有designer的spreadjs当中这里的代码是无效的。
查看这篇帖子 https://gcdn.grapecity.com.cn/showtopic-169149-1-1.html 使用了 spread.contextMenu.onOpenMenu  这个api,我有多个添加菜单项的需求但是代码并不在一处,不想每次都去修改 onOpenMenu 这个回调。这里应该怎么修改?

26 个回复

倒序浏览
Joestar.Xu
超级版主   /  发表于:2023-9-18 17:32:14
沙发
您好,目前来说只能在spread.contextMenu.onOpenMenu这个API中对设计器的右键菜单进行更改,您提到的“有多个添加菜单项的需求但是代码并不在一处”需求,能否请您再详细描述一下举例说明呢?
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-9-18 17:48:36
板凳
Joestar.Xu 发表于 2023-9-18 17:32
您好,目前来说只能在spread.contextMenu.onOpenMenu这个API中对设计器的右键菜单进行更改,您提到的“有多 ...

所以直接修改 contextMenu.menuData 在designer当中是不行吗?我不能在setConfig的时候就已经把右键菜单定制好吗?  

我们的工程里面,添加菜单项可能分散在各个 扩展当中,通过传递 workbook 这个对象进行读写,只是觉得 每次要添加菜单项要通过 覆写 onOpenMenu 这个方法来实现,不太优雅。
回复 使用道具 举报
Joestar.Xu
超级版主   /  发表于:2023-9-19 09:43:50
地板
本帖最后由 Joestar.Xu 于 2023-9-19 09:46 编辑

您好,这边测试了一下,直接修改spread.contextMenu.menuData也是可行的,不过这样的修改是针对全局修改的。

上文中提到的另一种方法是可以根据一些判断条件来进行修改。

image.png957249450.png
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-9-19 09:45:30
5#
本帖最后由 nutstore 于 2023-9-19 10:25 编辑
Joestar.Xu 发表于 2023-9-19 09:43
您好,这边测试了一下,直接修改spread.contextMenu.menuData也是可行的。

但是在我项目中,    workbook.contextMenu.menuData.push(item)这样的代码在非designer当中生效,在designer当中不生效
回复 使用道具 举报
Joestar.Xu
超级版主   /  发表于:2023-9-19 11:37:05
6#
不清楚是什么原因导致的,您提供一个demo,我们这边复现后调研看看。
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-9-19 11:48:05
7#
Joestar.Xu 发表于 2023-9-19 11:37
不清楚是什么原因导致的,您提供一个demo,我们这边复现后调研看看。

add-contextmenu-item-spreadjs.zip (30.26 KB, 下载次数: 2)
回复 使用道具 举报
Joestar.Xu
超级版主   /  发表于:2023-9-19 12:28:27
8#
我这边测试了一下,想要用自定义的方式来修改contextMenu.menuData在Designer中实现比较困难,暂时没有找到相关的解决方案,不过我这边找到了另一个可行的方法,即修改designer中的config来实现,示例代码如下:

  var openDialog = {
    text: "Write 11 in Console",
    name: "shows",
    commandName: "myCmd",
    visibleContext: "ClickViewport",
  };
  spread.commandManager().register("myCmd", function ColorAction() {
    alert("111");
  });
  designerConfig.contextMenu.push(openDialog);
  designer.setConfig(designerConfig);

image.png757998656.png
回复 使用道具 举报
nutstore
金牌服务用户   /  发表于:2023-9-19 13:57:38
9#
Joestar.Xu 发表于 2023-9-19 12:28
我这边测试了一下,想要用自定义的方式来修改contextMenu.menuData在Designer中实现比较困难,暂时没有找到 ...

好的 我试试看
回复 使用道具 举报
Joestar.Xu
超级版主   /  发表于:2023-9-19 17:33:05
10#
好的,后续有问题的话您随时追问哈。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部