本文介绍一种基于 JavaScript 的右键菜单实现方案,重点解决在不同浏览器(如 IE 和 Firefox)中的兼容性问题。通过监听鼠标事件,支持为页面中不同的 HTML 对象绑定独立的菜单配置,实现灵活的上下文交互体验。
JavaScript 右键菜单实现原理
相关代码的调整过程相对简便。
<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能运行就直接写进来了---> <!-----设置一个菜单层----> <div id="menu" class='DreamMenu'> 本站 百度 google 站长工具 <ul></ul> 打印 </div> <!-----设置一个菜单层----> <div id="menu2" class='DreamMenu'> 哈哈 我是个链接 好开心啊 查看 <ul></ul> 打印 </div> <!-----设置一个菜单层----> <div id="menu3" class='DreamMenu'> 哈哈 我是图片 虽然打不开 查看 <ul></ul> 打印 </div> <table><tr><td height=100> <!-----设置一个菜单menu属性----> 菜单1 菜单2 </td></tr></table> <div style='height:300;' menu='menu'></div> <img src='/uploads/20261024/40981d84422f6f1e268be5fb9ea181abadd4d0c6ae085bd847ae3fa944d7a54b.gif' menu='menu3'> [Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]