找回密码
 立即注册

QQ登录

只需一步,快速开始

凯神Jump 悬赏达人认证 活字格认证

中级会员

16

主题

419

帖子

767

积分

中级会员

积分
767

悬赏达人活字格认证

凯神Jump 悬赏达人认证 活字格认证
中级会员   /  发表于:2022-2-17 09:29  /   查看:2742  /  回复:8
本帖最后由 凯神Jump 于 2022-2-17 09:31 编辑

大家先看效果:

左右键.gif672286071.png

可以通过按钮的名称,或者按钮的类名进行自定义命令:
image.png602676696.png

JavaScript脚本(在页面加载时执行)
  1. var page = Forguncy.Page;
  2. var fuzhu1 = page.getCell("fuzhu1");
  3. var fuzhu2 = page.getCell("fuzhu2");

  4. document.oncontextmenu = function(e){
  5.     e.preventDefault();

  6.     if(e.button ==2 && getFGCNAME(e.target)=="mybtn"){
  7.         fuzhu1.setValue(fuzhu1.getValue()+1);
  8.     }
  9.     if(e.button ==2 && checkElementClassName(e.target,"mybtnclass")){
  10.         fuzhu2.setValue(fuzhu2.getValue()+1);
  11.     }
  12. };

  13. //用于根据控件名判断的情况
  14. var getFGCNAME = function(element)
  15. {
  16.     if(element ==null) {return "undefined";}
  17.     else if(element.nodeName=="#document") {return "undefined";}
  18.     else if(element.getAttribute("fgcname")==null)
  19.     {
  20.         if(element.parentNode==null) {return "undefined";}
  21.         else {return getFGCNAME(element.parentNode);}
  22.     }
  23.     else  {return element.getAttribute("fgcname");}
  24. };

  25. //用于根据类名判断的情况
  26. var checkElementClassName = function(element,className)
  27. {
  28.     if(element ==null) {return false;}
  29.     else if(element.nodeName=="#document") {return false;}
  30.     else if(element.classList.contains(className))
  31.     {
  32.         return 1;
  33.     }
  34.     else  
  35.     {
  36.         if(element.parentNode==null) {return false;}
  37.         else {return checkElementClassName(element.parentNode,className);}
  38.     }
  39. };
复制代码
说一下js的思路:
· 根据控件名:
1. 如下图,虽然我在按钮上定义了mybtn名称,但是实际点击"点击测试"文本时,可能是mybtn的内部元素
2. 所以使用递归的方式抓取到点击元素的fgcname,判断是否为mybtn,到最顶层时都没找到fgcname则返回undefined

· 根据元素类名:
一样的道理,也是要递归判断其是否含有mybtnclass类名

image.png554820251.png


附件供参考~


右击方案_名称_类名(7.0.104).fgcc

81.97 KB, 下载次数: 121

评分

参与人数 4金币 +200 满意度 +15 收起 理由
Alink + 5
Epimenides + 5
Chelsey.Wang + 200 赞一个!
swejet + 5

查看全部评分

8 个回复

倒序浏览
Epimenides
初级会员   /  发表于:2022-2-19 12:22:32
沙发
实用 下载来试试 哈哈
回复 使用道具 举报
吴小胖讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-2-19 14:59:13
板凳
凯神V5 赞
回复 使用道具 举报
xhzxh1982
注册会员   /  发表于:2022-2-21 21:33:41
地板
好厉害(ω)嘿
回复 使用道具 举报
Alink
高级会员   /  发表于:2022-3-4 18:08:30
5#
image.png916946105.png 这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件
回复 使用道具 举报
muto
金牌服务用户   /  发表于:2022-3-5 11:22:04
6#
Alink 发表于 2022-3-4 18:08
这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件

你这是活字格做的?
回复 使用道具 举报
洗尿布的活字格认证
中级会员   /  发表于:2022-3-5 12:02:49
7#
凯神牛逼
回复 使用道具 举报
凯神Jump悬赏达人认证 活字格认证
中级会员   /  发表于:2022-3-7 19:42:38
8#
本帖最后由 凯神Jump 于 2022-3-7 19:44 编辑
Alink 发表于 2022-3-4 18:08
这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件

能对你项目有帮助,甚是荣幸!
————————————
封装成插件怕是没办法哦,难不成改写所有官方的控件嘛~~


回复 使用道具 举报
mrguo6221
中级会员   /  发表于:2023-3-7 14:36:05
9#
请问如果想单纯的禁用页面右键菜单,能不能简化一下呀?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部