转一个右键菜单,支持不同对象不同菜单,兼容IE、Firefox

本文介绍了一种使用HTML和JavaScript实现自定义右键菜单的方法。通过为不同元素设置menu属性,可在页面任意位置弹出自定义菜单。支持IE5.0+、Firefox1.5+等浏览器。
<html>
<head>
<title>ddd</title>
<style>
.DreamMenu 
{
    position
:absolute;
    visibility
:hidden;
    z-index
:100;
    overflow
:hidden;
    width
:150px;
    background-color
:buttonface;
    border
:dimgray 1px solid !important;
    border
:buttonhighlight menu menu buttonhighlight 2px outset;
    padding
:1px !important;
    padding
:1px 1px 1px 0px;
    font-size
:12px;
}
.DreamMenu ul 
{
    margin
:1px;
    border-bottom
:buttonhighlight 1px solid;
    border-top
:buttonshadow 1px solid;
}
.DreamMenu a 
{
    display
:block;
    width
:100%;
    padding
:1px 2px 2px 20px;
    cursor
:default;
    text-decoration
:none;
    color
:#000000;
}
.DreamMenu a:hover 
{
    background
:highlight; 
    color
:#ffffff;
}
</style>
</head>
<body menu='menu'>
<!---这段js最好写进文件方便用,为了在51能运行就直接写进来了--->
<script>
/***
DreamCore - JsLib/Menu
Date     : Dec 03, 2006
Copyright: DreamSoft Co.,Ltd.
Mail     : Dream@Dreamsoft.Ca
Author   : Egmax
Browser : IE5.0&+,Firefox1.5&+,Netscape7.0&+
Update:
**
*/
if(!document.all) document.captureEvents(Event.MOUSEDOWN);
var _Tmenu = 0;
var _Amenu = 0;
var _Type = 'A';
document.onclick 
= _Hidden;
function _Hidden()
{
    
if(_Tmenu==0return;
    document.getElementById(_Tmenu).style.visibility
='hidden';
    _Tmenu
=0;
}
document.oncontextmenu 
= function (e)
{
    _Hidden();
    
var _Obj = document.all ? event.srcElement : e.target;
    
if(_Type.indexOf(_Obj.tagName) == -1return;
    _Amenu 
= _Obj.getAttribute('menu');
    
if(_Amenu == 'null'return;
    
if(document.all) e = event;
    _ShowMenu(_Amenu, e);
    
return false;
}
function _ShowMenu(Eid, event)
{
    
var _Menu = document.getElementById(Eid);
    
var _Left = event.clientX + document.body.scrollLeft;
    
var _Top = event.clientY + document.body.scrollTop;
    _Menu.style.left 
= _Left.toString() + 'px';
    _Menu.style.top 
= _Top.toString() + 'px';
    _Menu.style.visibility 
= 'visible';
    _Tmenu 
= Eid;
}
/***
可以支持其他标签INPUT,IMG
**
*/
</script>
<script>_Type='INPUT,A,DIV,BODY,IMG';</script>
<!-----设置一个菜单层---->
<div id="menu" class='DreamMenu'>
<href='0'>您好</a>
<href='1'>我是主菜单</a>
<href='2'>在页面上单击</a>
<href='3'>就可以看到我</a>
<ul></ul>
<href='4'>打印</a>
</div>
<!-----设置一个菜单层---->
<div id="menu2" class='DreamMenu'>
<href='0'>哈哈</a>
<href='1'>我是个链接</a>
<href='2'>好开心啊</a>
<href='3'>查看</a>
<ul></ul>
<href='4'>打印</a>
</div>
<!-----设置一个菜单层---->
<div id="menu3" class='DreamMenu'>
<href='0'>哈哈</a>
<href='1'>我是图片</a>
<href='2'>虽然打不开</a>
<href='3'>查看</a>
<ul></ul>
<href='4'>打印</a>
</div>
<table><tr><td height=100>
<!-----设置一个菜单menu属性---->
<href='test.php' menu='menu2'>菜单1</a>
<href='test.php' menu='menu2'>菜单2</a>
</td></tr></table>
<div style='height:300;' menu='menu'></div>
<img src='http://bbs.51js.com/images/default/logo.gif' menu='menu3'>

 

转载于:https://www.cnblogs.com/heimark/archive/2010/01/26/1656723.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值