<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<script language="javascript">
/**
* PopupMenu.js
* COPYRIGHT 2006, Boco Corporation
**/
var bContextKey=false;
function fnGetContextID(el) {
while (el!=null) {
if (el.contextmenu) return el.contextmenu
el = el.parentElement
}
return ""
}
function fnDetermine(){
oWorkItem=event.srcElement;
//键盘上的菜单键被按下时。
if(bContextKey==true){
//如果菜单的“状态”为“false”
if(oContextMenu.getAttribute("status")=="false"){
//捕获鼠标事件,以便和页面交互。
oContextMenu.setCapture();
//根据鼠标位置,确定菜单位置。
oContextMenu.style.top=event.clientY + document.body.scrollTop + 1;
oContextMenu.style.left=event.clientX + document.body.scrollLeft + 1;
oContextMenu.innerHTML="";
//设定菜单的“状态”为“true”
var sContext = fnGetContextID(event.srcElement)
if (sContext!="") {
fnPopulate(sContext)
oContextMenu.setAttribute("status","true");
event.returnValue=false;
}
else
event.returnValue=true
}
}
else{
// 如果键盘菜单键没有按下,并且菜单的“状态”为“true”。
if(oContextMenu.getAttribute("status")=="true"){
if((oWorkItem.parentElement.id=="oContextMenu") && (oWorkItem.getAttribute("component")=="menuitem"))
{
fnFireContext(oWorkItem)
}
// 当鼠标离开菜单或单击菜单项后,重设菜单(隐藏)
oContextMenu.style.display="none";
oContextMenu.setAttribute("status","false");
oContextMenu.releaseCapture();
oContextMenu.innerHTML="";
event.returnValue=false;
}
}
}
function fnPopulate(sID)
{
var str=""
var elMenuRoot =
document.all.contextDef.XMLDocument.childNodes(0).selectSingleNode('contextmenu[@id="' + sID + '"]'
)
if (elMenuRoot) {
for(var i=0;i<elMenuRoot.childNodes.length;i++)
str+='<span component="menuitem" menuid="' + elMenuRoot.childNodes[i].getAttribute("id") +'" id=oMenuItem' + i + '>' + elMenuRoot.childNodes[i].getAttribute("value") + "</SPAN><BR>"
oContextMenu.innerHTML=str;
oContextMenu.style.display="block";
oContextMenu.style.pixelHeight = oContextMenu.scrollHeight
}
}
function fnChirpOn(){
if((event.clientX>0) &&(event.clientY>0)&&(event.clientX<document.body.offsetWidth)&&(event.clientY<document.body.offsetHeight))
{
oWorkItem=event.srcElement;
if(oWorkItem.getAttribute("component")=="menuitem"){
oWorkItem.className = "selected"
}
}
}
function fnChirpOff(){
if((event.clientX>0) && (event.clientY>0) && (event.clientX<document.body.offsetWidth) &&(event.clientY<document.body.offsetHeight))
{
oWorkItem=event.srcElement;
if(oWorkItem.getAttribute("component")=="menuitem"){
oWorkItem.className = ""
}
}
}
////设置菜单样式
function fnInit(){
if (oContextMenu) {
oContextMenu.style.width=90; //菜单宽度
oContextMenu.style.height=document.body.offsetHeight/2;
oContextMenu.style.zIndex=2;
document.oncontextmenu=fnSuppress;
}
}
function fnInContext(el) {
while (el!=null) {
if (el.id=="oContextMenu") return true
el = el.offsetParent
}
return false
}
function fnSuppress(){
if (!(fnInContext(event.srcElement))) {
oContextMenu.style.display="none";
oContextMenu.setAttribute("status","false");
oContextMenu.releaseCapture();
bContextKey=true;
}
fnDetermine();
bContextKey=false;
}
//////////
function add_equipment(){
window.open("jsp/adddialog.jsp","addequipment","width=400,height=400,top=20,left=20")
}
function delete_equipment(){
window.open("jsp/deletedialog.jsp","delete","width=400,height=400,top=20,left=20")
}
function modify_equipment(){
window.open("jsp/modifydialog.jsp","modify","width=400,height=400,top=20,left=20")
}
/***** ADD ADDITIONAL HERE *****/
///////////
function fnFireContext(oItem) {
switch (oItem.menuid) {
case "add":
//add_equipment();
break;
case "delete":
//delete_equipment();
break;
case "modify":
//modify_equipment();
break;
case "cancel":
break;
/***** ADD ADDITIONAL HERE *****/
default:
alert("菜单功能有待完善" + oItem.menuid );
}
}
</script>
<TITLE> 鼠标右键弹出菜单 </TITLE>
<style>
.menu{ cursor: crosshair;
display: none;
position: absolute;
top: 0; left: 0;
overflow: hidden;
background-color: "#CFCFCF";
border: "2 solid";
border-top-color: "#EFEFEF";
border-left-color: "#EFEFEF";
border-right-color: "#505050";
border-bottom-color: "#505050";
font: 10pt Arial;
margin:0pt;padding: 2pt
}
.menu SPAN {width: 100%; cursor: crosshair; padding-left: 10pt;padding-bottom:2px;padding-top:2px}
.menu SPAN.selected {background: navy; color:white; cursor: crosshair;padding-top:2px}
</style>
<xml id="contextDef">
<xmldata>
<contextmenu id="menu1">
<item id="add" value="添加设备" />
<item id="delete" value="删除设备" />
<item id="modify" value="修改属性" />
<item id="cancel" value="取消" />
</contextmenu>
</xmldata>
</xml>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY onload="fnInit()" onclick="fnDetermine()">
<div status="false" onmouseover="fnChirpOn()" onmouseout="fnChirpOff()" id="oContextMenu" class="menu"></div>
<input type=image border=0 name='mapimage' contextmenu="menu1" src='http://www.oracle.com.cn/images/avatars/customavatar/123008.gif' >
</BODY>
</HTML>