本帖最后由 凯神Jump 于 2022-2-17 09:31 编辑
大家先看效果:
可以通过按钮的名称,或者按钮的类名进行自定义命令:
JavaScript脚本(在页面加载时执行)
- var page = Forguncy.Page;
- var fuzhu1 = page.getCell("fuzhu1");
- var fuzhu2 = page.getCell("fuzhu2");
- document.oncontextmenu = function(e){
- e.preventDefault();
- if(e.button ==2 && getFGCNAME(e.target)=="mybtn"){
- fuzhu1.setValue(fuzhu1.getValue()+1);
- }
- if(e.button ==2 && checkElementClassName(e.target,"mybtnclass")){
- fuzhu2.setValue(fuzhu2.getValue()+1);
- }
- };
- //用于根据控件名判断的情况
- var getFGCNAME = function(element)
- {
- if(element ==null) {return "undefined";}
- else if(element.nodeName=="#document") {return "undefined";}
- else if(element.getAttribute("fgcname")==null)
- {
- if(element.parentNode==null) {return "undefined";}
- else {return getFGCNAME(element.parentNode);}
- }
- else {return element.getAttribute("fgcname");}
- };
- //用于根据类名判断的情况
- var checkElementClassName = function(element,className)
- {
- if(element ==null) {return false;}
- else if(element.nodeName=="#document") {return false;}
- else if(element.classList.contains(className))
- {
- return 1;
- }
- else
- {
- if(element.parentNode==null) {return false;}
- else {return checkElementClassName(element.parentNode,className);}
- }
- };
复制代码 说一下js的思路:
· 根据控件名:
1. 如下图,虽然我在按钮上定义了mybtn名称,但是实际点击"点击测试"文本时,可能是mybtn的内部元素
2. 所以使用递归的方式抓取到点击元素的fgcname,判断是否为mybtn,到最顶层时都没找到fgcname则返回undefined
· 根据元素类名:
一样的道理,也是要递归判断其是否含有mybtnclass类名
附件供参考~
|
|