有一个自定义 IE 鼠标右键弹出式

发表于:2007-06-30来源:作者:点击数: 标签:
html head meta http-equiv=Content-Type content=text/html; charset=gb2312 title自定义鼠标右键弹出式菜单/title style type=text/css !-- .div1 { border-top:buttonface 1px solid;border-left:buttonface 1px solid;border-bottom:windowframe 1px soli
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>自定义鼠标右键弹出式菜单</title>
<style type="text/css">
<!--
.div1 { border-top:buttonface 1px solid;border-left:buttonface 1px solid;border-bottom:windowframe 1px solid;border-right:windowframe 1px solid;}
.div2 { border-top:window 1px solid;border-left:window 1px solid;border-bottom:buttonshadow 1px solid;border-right:buttonshadow 1px solid;}
.MouseOver {background-color:highlight;color:highlighttext;font-size: 12px;cursor:hand;font-size: 12px;}
.MouseOut {background-color:buttonface;color:buttontext;font-size: 12px;cursor:default;font-size: 12px;}
-->
</style>
<script language="javascript">
function PopupMouseRightButtonUpMenu()
{
if(MouseMenu.style.visibility==@#visible@#) MouseMenu.style.visibility=@#hidden@#;
if (event.srcElement.tagName==@#A@# || event.srcElement.tagName==@#TEXTAREA@# || event.srcElement.tagName==@#INPUT@# || document.selection.type!=@#None@#)
    return true;
else
    {
     if (event.clientX+150 > document.body.clientWidth) MouseMenu.style.left=event.clientX+document.body.scrollLeft-150;
     else MouseMenu.style.left=event.clientX+document.body.scrollLeft;
     if (event.clientY+DivH > document.body.clientHeight) MouseMenu.style.top=event.clientY+document.body.scrollTop-DivH;
     else MouseMenu.style.top=event.clientY+document.body.scrollTop;
     MouseMenu.style.visibility=@#visible@#;
    }
return false;
}
function DrawMouseRightButtonUpMenu(){
DivH=2;
//oSelection = document.selection;
var HrStr=@#<tr><td align=\"center\" valign=\"middle\" height=\"2\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"128\" height=\"2\"><tr><td height=\"1\" bgcolor=\"buttonshadow\"><\/td><\/tr><tr><td height=\"1\" bgcolor=\"buttonhighlight\"><\/td><\/tr><\/TABLE><\/td><\/tr>@#;
var MenuItemStr1=@#<tr><td align=\"center\" valign=\"middle\" height=\"20\"><TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"132\"><tr><td valign=\"middle\" height=\"16\" class=\"MouseOut\" onMouseOver=\"this.className=\@#MouseOver\@#\" onMouseOut=\"this.className=\@#MouseOut\@#\" onclick=\"@#
var MenuItemStr2="<\/td><\/tr><\/TABLE><\/td><\/tr>";
var historyMenu=[@#window.history.back()\">?后退@#,@#window.history.forward()\">?前进@#];
var SysMenu=[@#\">?查找 <INPUT TYPE=\"text\" Size=\"10\" onkeypress=\"if (event.keyCode == 13) {MouseMenu.style.visibility=\@#hidden\@#;var temp = this.value; this.value = \@#\@#;return findInPage(temp)}\";\@#>@#,
             @#document.execCommand(\@#SelectAll\@#)\">?全选@#,
             @#MouseMenu.style.visibility=\@#hidden\@#;document.execCommand(\@#SaveAs\@#,\@#true\@#)\">?另存为 ...@#,
             @#location.replace(\@#view-source:\@#+location.href)\">?查看源文件@#,
             @#MouseMenu.style.visibility=\@#hidden\@#;window.print()\">?打印@#,
             @#window.location.reload()\">?刷新@#];

var MenuStr=@#@#;
for(i=0;i<historyMenu.length;i++)
   {
    MenuStr+=MenuItemStr1+historyMenu[i]+MenuItemStr2;
    DivH+=20;
   }
MenuStr+=HrStr;
for(i=0;i<arguments.length;i++)
   {
    MenuStr+=MenuItemStr1+arguments[i]+MenuItemStr2;
    DivH+=20;
   }

if(arguments.length>0)
  {
   MenuStr+=HrStr;
   DivH+=2;
  }

for(i=0;i<SysMenu.length;i++)
   {
    MenuStr+=MenuItemStr1+SysMenu[i]+MenuItemStr2;
    DivH+=20;
   }

var aboutMenu=[@#MouseMenu.style.visibility=\@#hidden\@#;alert(\@#http:\/\/www.sina.com.cn\\nmailto:hhw_lb@263.net\@#)">?关于 ...@#]
MenuStr+=HrStr;
for(i=0;i<aboutMenu.length;i++)
   {
    MenuStr+=MenuItemStr1+aboutMenu[i]+MenuItemStr2;
    DivH+=20;
   }

var MenuTop = @#<DIV id=\"MouseMenu\" class=\"div1\" style=\"position:absolute; left:0px; top:0px; width=150;height=@#+DivH+@#; z-index:1; visibility:hidden;\">\n@# +
             @#<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"div2\">\n@# +
             @#<tr>\n@# +
             @#<td bgcolor=\"@# + MenuBarColor+ @#\" width=\"50\" valign=\"bottom\" align=\"center\"  bgcolor=\"buttonface\">\n@# +
             @#<\/td>\n@#+
             @#<td bgcolor=\"buttonface\">\n@#+
             @#<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\">@#;
var MenuBottom = @#<\/TABLE><\/td><\/tr><\/TABLE><\/DIV>@#;
document.write(MenuTop+MenuStr+MenuBottom);
//prompt(@#aa@#,MenuTop+MenuStr+MenuBottom)
document.body.oncontextmenu=new Function(@#return PopupMouseRightButtonUpMenu();@#);
document.body.onclick=new Function(@#if(event.srcElement.tagName !=\@#INPUT\@#) MouseMenu.style.visibility=\@#hidden\@#@#);
document.body.onscroll=new Function(@#MouseMenu.style.visibility=\@#hidden\@#;@#);
document.body.onselectstart=new Function(@#MouseMenu.style.visibility=\@#hidden\@#;@#);
window.onresizestart=new Function(@#MouseMenu.style.visibility=\@#hidden\@#;@#);
}
var NS4 = (document.layers);
var IE4 = (document.all);
var win = window;
var n = 0;
function findInPage(str) {
  var txt, i, found;
  if (str == @#@#)
    return false;
  if (NS4) {
    if (!win.find(str))
      while(win.find(str, false, true))
        n++;
    else
      n++;
    if (n == 0)
      alert(@#文档搜索完毕。@#);
  }
  if (IE4) {
    txt = win.document.body.createTextRange();
    for (i = 0; i <= n && (found = txt.findText(str)) != false; i++) {
      txt.moveStart(@#character@#, 1);
      txt.moveEnd(@#textedit@#);
    }
    if (found) {
      txt.moveStart(@#character@#, -1);
      txt.findText(str);
      txt.select();
      txt.scrollIntoView();
      n++;
    }
    else {
      if (n > 0) {
        n = 0;
        findInPage(str);
      }
      else
        alert(@#文档搜索完毕。@#);
    }
  }
  return false;
}
</script>
</head>
<body>
自定义鼠标右键弹出式菜单
<SCRIPT LANGUAGE="JavaScript">
<!--
var MenuBarColor =@##6600FF@#;
DrawMouseRightButtonUpMenu();
//-->
</SCRIPT>
</body>
</html>



原文转自:http://www.ltesting.net