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();
}