JavaScript 实现自定义右键菜单的完整代码示例

作者:闭包旅人

时间:2026-10-21

浏览:271

本文提供了一段完整的 JavaScript 代码,用于在网页中实现自定义的右键弹出菜单功能。通过监听 oncontextmenu 事件,阻止默认菜单并显示自定义 div 层。代码包含菜单项配置、样式定义及动态生成表格结构的逻辑,可直接嵌入网页使用,适用于需要定制交互体验的前端场景。

文章目录

JavaScript 实现自定义右键菜单的完整代码示例

把下述脚本嵌入至<head>与</head>标签内部


---------------------------------- 


<script language='javascript'>


/*******可自定义部分***************/


var mname=new Array(


"首 页",


"修 改",


"下 载",


"删 除",


"新 建",


"刷 新"


); 

//mname定义菜单文本,数组长度需与下方murl一致



var murl=new Array(


"window.open('http://www.cn5.cn','_blank','');",


"alert('修改');",


"alert('download');",


"alert('delete');",


"alert('new');",


"alert('refresh');"


); 

//murl定义菜单动作,支持任意JS代码,注意避免使用双引号


//若需页面跳转可写为window.location='url';


var ph=18,mwidth=50;//单行高度,菜单总宽


var bgc="#eee",txc="black";//未选中项背景色与文字色


var cbgc="darkblue",ctxc="white";//选中项背景色与文字色



/****************勿修改以下代码******************/


var mover="this.style.background='"+cbgc+"';this.style.color='"+ctxc+"';"


var mout="this.style.background='"+bgc+"';this.style.color='"+txc+"';"



document.oncontextmenu=function()


{  

mlay.style.display="";


mlay.style.pixelTop=event.clientY;


mlay.style.pixelLeft=event.clientX;


return false;


} 

function showoff()


{ 

mlay.style.display="none";


} 

function fresh()


{ 

mlay.style.background=bgc;


mlay.style.color=txc;


mlay.style.width=mwidth;


mlay.style.height=mname.length*ph;


var h="<table width=100% height="+mname.length*ph+"px cellpadding=0 cellspacing=0 border=0>";


var i=0;


for(i=0;i<mname.length;i++)


 { 

h+="<tr align=center height="+ph+" onclick=\""+murl[i]+"\" onMouseover=\""+mover+"\" onMouseout=\""+mout+"\"><td style='font-size:9pt;'>"+mname[i]+"</td></tr>";


 } 

h+="</table>";


mlay.innerHTML=h;


} 

</script>



---------------------------------- 

将下述代码替换<body>标签


---------------------------------- 

<body onClick="showoff();" onload="fresh();">


---------------------------------- 

在<body>与</body>之间添加以下标记


---------------------------------- 

<div id="mlay" style="position:absolute;display:none;cursor:default;" onClick="return false;"></div>


---------------------------------- 

完成!!!


:) 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章