自定义 IE 鼠标右键弹出式

转载 2006年05月20日 19:56:00
 

<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.playyuer.com//nmailto:playyuer@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>

 

 

做一个类似于window右键的弹出式菜单。

直接下载js文件和观看效果: http://202.114.98.14/~cityhunter/jscripts/jscripts.htm
代码如下: 

var obj;

function loadobj(o)
{
  obj=o;
}

function expand()
{
  var h=parseInt(obj.height);
  var w=parseInt(obj.width);
  var op=10;

  if( h<=170 )
  {
    if( w<60 )
      obj.style.width=w+6;

    obj.style.height=h+17;

    x=setTimeout('expand()', 25);
  }
  else
  {
    obj.style.width=60;
    obj.style.height=174;
    clearTimeout(x);
  }
}

var drag=0;
var move=0;
function Dblclick()
{
  if (event.button==0)
    {
      obj.style.visibility="visible";
      obj.style.left=window.event.x;
      obj.style.top =window.event.y;
      obj.style.width=0;
      obj.style.height=0;

      obj.filters.item(0).apply();
      obj.filters.item(0).transition = 25;
      obj.filters(0).play(0.5);

      expand();
    }
}

function MouseMove()
{
  if(move==1)
    {
      obj.style.cursor="move";
      obj.style.left=window.event.x-l;
      obj.style.top=window.event.y-t;
    }
}

function MouseDown()
{
  if(drag) 
    {
      l = window.event.x - parseInt(obj.style.left);
      t = window.event.y - parseInt(obj.style.top);
      obj.style.zIndex+=1;
      move=1;
    }
  else
    {
      document.body.style.cursor='default';
      obj.style.visibility='hidden';
    }
}

function MouseStop()
{
  window.event.returnValue=false;
}

function MouseUp()
{
  move=0;
  obj.style.cursor="hand";
}

document.ondblclick=Dblclick;
document.onmousedown=MouseDown;
document.onmousemove=MouseMove;
document.ondragstart=MouseStop;
document.onmouseup=MouseUp;

IE屏蔽鼠标右键、禁止复制粘贴等功能

body oncontextmenu="return false" onselectstart="return false" ondragstart="return false" onbeforeco...
  • ufojoan
  • ufojoan
  • 2014年04月11日 12:05
  • 860

HTML中自定义右键菜单功能

我们使用的应用系统很多都有右键菜单功能。但是在网页上面,点击右键一般显示的却是IE默认的右键菜单,那么我们如何实现自己的右键菜单呢?下面将讲解右键菜单功能的实现原理和实现代码。     实现...
  • fwj380891124
  • fwj380891124
  • 2013年05月10日 17:01
  • 6468

jQuery自定义元素右键点击事件

大多数情况下我们使用左键来进行页面交互,而右键大部分对于开发者来说是审查元素的,有的时候我们也要自定义鼠标右键点击行为来达到更好的交互性,常见的有漫画左键前进、右键后退。第一步我们要屏蔽浏览器默认的右...
  • u014291497
  • u014291497
  • 2016年08月21日 15:45
  • 15584

javascript自定义右键菜单并屏蔽默认右键菜单【原创】

原理很简单,就是右击鼠标(oncontextmenu事件)return false阻止默认右键菜单,之后显示自定义的右键菜单,菜单显示位置由事件源的clientX和clientY计算得出。 ...
  • q1207526854
  • q1207526854
  • 2013年08月13日 15:37
  • 2420

屏蔽浏览器右键菜单功能,自定义右键菜单(兼容IE8)

做了个自定义右键菜单的功能,和获取选中文本内容相关,一起记录一下。网上查阅尝试了很多方式,选择了一个较为简洁的方式实现,代码很少,进行细节调整后发现存在IE8兼容性问题,又查阅资料后进行了优化,目前可...
  • m0_37578731
  • m0_37578731
  • 2017年12月11日 15:58
  • 181

如何实现jquery自定义点击右键菜单显示

jquery自定义点击右键菜单显示其实很简单,只要下载一个smartMenu.js和一个smartMenu.css两个文件之后,将两个文件分别加入到css和js文件夹下面,然后在前台写上以下代码,就可...
  • yu13767514297
  • yu13767514297
  • 2015年07月24日 15:16
  • 2945

js 右键弹出自定义菜单

近期在项目中有一个右键菜单的需求,发现很多实现都比较复杂,于是自己花了一点时间稍微研究了一下,下面提供一个简洁的实现方法。 js声明部分://创建右键菜单 var epMenu={ crea...
  • ttx_laughing
  • ttx_laughing
  • 2016年11月24日 17:17
  • 808

js屏蔽鼠标右键默认事件以实现自定义菜单

2017-12-18日,2017年即将结束的日子里。 公司做了一个项目,主要难点在于实现公司组织架构图上,何谓组织架构图,如下便是: 这里的每个节点都有相应的右键菜单,说白了就跟你...
  • qq_16371909
  • qq_16371909
  • 2017年12月18日 19:00
  • 110

Java程序员必看--扩展鼠标右键菜单功能

背景:今天在做点东西,敲了好多cd命令,目的就是从dos进入一个目录去执行一个ant命令。是在是太无聊了!这个项目很大目录众而且层次很深,我需要从资源管理器去浏览其中的代码,可是每次打开都是我的电脑的...
  • g_wins
  • g_wins
  • 2015年10月29日 15:34
  • 1335

自定义右击鼠标右键

       JS实现自定义右键菜单                 
  • guorun18
  • guorun18
  • 2015年05月05日 15:43
  • 219
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自定义 IE 鼠标右键弹出式
举报原因:
原因补充:

(最多只允许输入30个字)