pbwebfrom采用JS来创建右键弹出菜单

B/S下采用JS来生成右键菜单的思路:第一 用数据窗口来建立菜单的每项内容。第二:采用JS的CREATEPOPUP函数创建弹出页面。第三:对弹出的页面进行内容的添加。第四:对添加的每项内容进行函数定义。通过这四步我们就可以使用JS来创建一个B/S下的右键菜单。代码如下:



function mouserbuttonclick(sender, rowNumber, objectName){
 
    //创建弹出页面    
    var vpop = window.createPopup()
    //创建弹出菜单函数
    function popmenu(){
             
            /***其实当这个函数写完并测试后我突然想到我们能否将数据窗口内的内容导出成一个标准的HTML?
            之后我们对这个HTML来进行分析来得到菜单的内容?这样是不是就可以不用采用循环来
            过滤菜单的内容。因为仔细分析PB的B/S下的代码我们可以看到所有的数据都被先建立一个DIV层,完了
            各项值和属性都在SPAN标签内。那么标准的HTML分析起来应该会简单的多。一下代码可能有不妥之处。请各位完善。
            ***/
             
            //得到弹出菜单的BODY标签内容     
            var pmenu = vpop.document.getElementsByTagName("body")[0];
             
            //设置菜单的背景色                  
            pmenu.style.backgroundColor = "#d8e4f8";
             
            //设置菜单的字体大小
            pmenu.style.fontSize = "10pt";
             
            //定义菜单菜单项           
            vpop.document.getElementsByTagName("body")[0].innerHTML =  objdw_3_datawindow.innerHTML;
             
            //得到菜单的SPAN标签
            var f = vpop.document.getElementsByTagName("SPAN");
             
            //对SPAN标签内容进行过滤
             for(i=1;i<f.length;i++){
                 
                //对SPAN的值小于3的对象进行属性和动作的定义
                if (f[i].innerHTML.length<3){
                     
                    //创建单击函数
                    f[i].οnclick=menuclick;    
                 
                    }
             
                }
             
            //在右击的地方显示菜单    
            vpop.show(window.event.x,window.event.y,70,59,document.getElementsByTagName("body")[0])
            
            }
             
                                
             
    function menuclick(){
     
       var a = vpop.document.parentWindow.event.srcElement;
        
        alert(a);
     
    };      
     
    //执行函数
     popmenu(); 
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值