禁用浏览器右键菜单,并自定义命令,示例
本帖最后由 凯神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类名
附件供参考~
:hjyzw:实用 下载来试试 哈哈 凯神V5 赞 好厉害(ω)嘿 这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件
Alink 发表于 2022-3-4 18:08
这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件
你这是活字格做的? 凯神牛逼 本帖最后由 凯神Jump 于 2022-3-7 19:44 编辑
Alink 发表于 2022-3-4 18:08
这是根据你提供地方法做的树形图鼠标右键菜单,建议作者把他封装为一个鼠标右键插件
能对你项目有帮助,甚是荣幸!
————————————
封装成插件怕是没办法哦,难不成改写所有官方的控件嘛~~
请问如果想单纯的禁用页面右键菜单,能不能简化一下呀?
页:
[1]