手机版

用JS重写Cognos右键菜单的实现代码

时间:2021-10-23 来源:互联网 编辑:宝哥软件园 浏览:

复制代码代码如下:-菜单样式- STYLE type=text/css .cMenu { BOrder-right : # 000000 1px固体;边框-顶部: #000000 1px固体;字体-重量:正常;FONT-SiZe : 14px;可视性:隐藏;边框-左侧: #000000 1px实心;宽度: 150像素;CURSOR:默认;颜色: # 000000线-高度: 20px边框-底部: #000000 1px实心;Helvetica阿里亚尔维尔达纳:号,无衬线;绝对位置:背景-颜色: # eee ff } .menuitems { PADDING-right : 5px;填充-左侧: 5px }/样式分区类=cMenu id=' context menu ' on mouse over=highlight menu()on mouse out=low lightmenu()DIV类=menuitems clickcall='alert('查看历史执行情况');'查看历史执行情况/DIV类=menuitems clickcall='alert('查看批注');'查看批注/DIV类=menuitems clickcall='alert('插入/修改批注');'插入/修改批注/DIV HR color=# AAAA size=' 0 ' DIV class=menuitems点击调用=' alert('关于');'关于/DIV /DIV脚本类型=' text/JAVAScript ' var上下文菜单=document。GetElementBYID('上下文菜单');函数getObjectName(){返回文档。getelementbyid(' cv。id ').价值;}函数getRVContent(){ var objName=getObjectName();返回eval('文档。' getelementbyid(' RVContent ' Objname ' ');');}函数overWriteRightClick()//重写弹出菜单{ var Objname=GetObjectName();eval(' OCv ' ObjName '。rvmainwnd。显示上下文菜单=显示上下文菜单;');}函数禁用右键(){ var objName=getObjectName();eval('oCV' objName ' .bcansecognosviewercontextmenu=false;');} /* 菜单相关函数start */function displayContextMenu(evt){ evt=(evt)?evt :((事件)?事件:为空);HideContextMenu();var rightedge=getRVContent().客户端宽度-evt。客户x;var bottomedge=getRVContent().客户身高-evt。客户关系;if(右边缘上下文菜单。offsetwithts)上下文菜单。风格。left=getRVContent().偷evt。client x-上下文菜单。offsetwithts-getRVContent().使用上下文菜单。风格。left=getRVContent().偷evt。clientx-getRVContent().offsetLeftif(底边上下文菜单。偏置右边)上下文菜单。风格。top=getRVContent().滚动顶部evt。客户端上下文菜单。offset the right-getRVContent().offsetTopelse上下文菜单。风格。top=getRVContent().滚动顶部evt。clienty-getRVContent().offsetTopcontext菜单。风格。可见性='可见';返回false}函数HideContextMenu(){ var object=event。加速;上下文菜单。风格。可见性='隐藏';if(object。类名=' menuitems '){ eval(对象。点击通话);} }函数高亮菜单(){ var object=event。srcelelementif(object。类名=' menuitems '){ object。风格。背景颜色='高光';对象。风格。颜色='白色';} }函数LowLightMenu(){ var object=event。srcelelementif(object。类名=' menuitems '){ object。风格。background COlOr=对象。风格。颜色='黑色';} } /*菜单相关函数end */overWriteRightClick();文件。尸体。onclick=HideContextMenu/SCRIPT下面我来着介绍一下这段代码,前面的风格和差异主要是定义菜单的现实样式,其中引用样式为菜单的差异中有个点击通话属性,这个属性就是当点击此菜单项时调用的射流研究…函数,可以将其改为自己的函数,我这里只是简单的调用了个警报。getObjectName函数中有个cv.id的对象,之前也有人问过这个问题,“cv.id”是干什么用的?康格诺(公司名)报表在ReportStudio运行生成的对象和用统一资源定位器请求生成的对象名称是不一样的,但是有规律可循,比如利用ReportStudio运行生成的报表中CognosViewer的对象名为开放式课程,而用统一资源定位器请求生成的cognosViewer对象名为oCV_NS_,大家可以查看两次运行结果的源文件来进行比较,就比较直观了。发现前缀都一样(oCV)只是后面"遥感"和" _NS_ "不同,页面中很多对象都是用的此规则,而cv.id存储到正是后缀。这样就可以拼凑出当前运行模式下的对象名了。

函数的作用是:获取id为RVContent_NS_或RVContentRS的DIV对象。RVContent是ReportStudio定义的报表内容,不包括CognosViewer工具栏和标题栏。OverWriteRightClick函数是将cognos右击调用的函数改为自己定义的函数。正如禁用右键单击功能所说,禁用右键菜单。displayContextMenu、hideContextMenu、highLightMenu、lowLightMenu等功能都是通过菜单操作先关闭的,可以根据实际需求进行修改。效果图如下:

版权声明:用JS重写Cognos右键菜单的实现代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。