- 浏览: 275818 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
yh008:
不错的工具类。 版面需要调整下,有些内容看不到了,只能复制粘贴 ...
Spring 优秀工具类盘点,第 1 部分: 文件资源操作二 -
手心的水滴:
function Foo() { (function( ...
js 两个小括号 ()() 的用法 -
showthesunli:
博主说了这么多,我来说说我的想法,不晓得对不对总结一下,如下代 ...
js 两个小括号 ()() 的用法 -
aqbzwxd:
就是这种盲目无原理依据的研究测试弄晕了我, 有必要这么做吗? ...
js 两个小括号 ()() 的用法 -
wst0350:
多谢
oracle 触发器
HTML中实现右键菜单功能
我们使用的应用系统很多都有右键菜单功能。但是在网页上面,点击右键一般显示的却是IE默认的右键菜单,那么我们如何实现自己的右键菜单呢?下面将讲解右键菜单功能的实现原理和实现代码。
实现原理
在HTML语言中,基本上每个对象都有一个oncontextmenu事件,这个事件就是鼠标的右键单击事件(onclick事件是鼠标的左键单击事件),那么我们就可以在鼠标右击的时候,让系统弹出一个窗口(这个是popup窗口,显示在IE的最前面,没有菜单),上面显示我们想要显示的菜单信息,当我们单击其中某一项的时候,就执行我们设定的动作,然后将弹出窗口关闭。
实现代码
下面我写了一个示例代码,模拟一个树型菜单,当我们右键点击树型菜单某一项的时候,就会弹出右键菜单,里面有“新增”、“修改”、“删除”三个菜单项,单击某项会执行相应的操作。如果是在页面的其它地方点击右键的话,就只显示“新增”一个菜单项。下面的代码内容:
contextmenuDemo.html文件
―――――――――――――――――――――――――――――――――
<%--
/**
*实现右键菜单功能
*/
--%>
写道
<html>
<body oncontextmenu = showMenu('')>
<form name = "menuForm">
<!--隐藏框,用来保存选择的菜单的id值-->
<input type = "hidden" name = "id" value = "">
<table>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('0')>根目录</a></td></tr>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('1')>菜单一</a></td></tr>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('2')>菜单二</a></td></tr>
</table>
</form>
</body>
<!-- 这里用来定义需要显示的右键菜单 -->
<div id="itemMenu" style="display:none">
<table border="1" width="100%" height="100%" bgcolor="#cccccc" style="border:thin" cellspacing="0">
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.create()">
新增
</td>
</tr>
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.update();">
修改
</td>
</tr>
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.del()">
删除
</td>
</tr>
</table>
</div>
<!-- 右键菜单结束-->
</html>
<body oncontextmenu = showMenu('')>
<form name = "menuForm">
<!--隐藏框,用来保存选择的菜单的id值-->
<input type = "hidden" name = "id" value = "">
<table>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('0')>根目录</a></td></tr>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('1')>菜单一</a></td></tr>
<tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('2')>菜单二</a></td></tr>
</table>
</form>
</body>
<!-- 这里用来定义需要显示的右键菜单 -->
<div id="itemMenu" style="display:none">
<table border="1" width="100%" height="100%" bgcolor="#cccccc" style="border:thin" cellspacing="0">
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.create()">
新增
</td>
</tr>
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.update();">
修改
</td>
</tr>
<tr>
<td style="cursor:default;border:outset 1;" align="center" onclick="parent.del()">
删除
</td>
</tr>
</table>
</div>
<!-- 右键菜单结束-->
<script language="JavaScript"> /** *根据传入的id显示右键菜单 */ function showMenu(id) { menuForm.id.value = id; if("" == id) { popMenu(itemMenu,100,"100"); } else { popMenu(itemMenu,100,"111"); } event.returnValue=false; event.cancelBubble=true; return false; } /** *显示弹出菜单 *menuDiv:右键菜单的内容 *width:行显示的宽度 *rowControlString:行控制字符串,0表示不显示,1表示显示,如“101”,则表示第1、3行显示,第2行不显示 */ function popMenu(menuDiv,width,rowControlString) { //创建弹出菜单 var pop=window.createPopup(); //设置弹出菜单的内容 pop.document.body.innerHTML=menuDiv.innerHTML; var rowObjs=pop.document.body.all[0].rows; //获得弹出菜单的行数 var rowCount=rowObjs.length; //循环设置每行的属性 for(var i=0;i<rowObjs.length;i++) { //如果设置该行不显示,则行数减一 var hide=rowControlString.charAt(i)!='1'; if(hide){ rowCount--; } //设置是否显示该行 rowObjs[i].style.display=(hide)?"none":""; //设置鼠标滑入该行时的效果 rowObjs[i].cells[0].onmouseover=function() { this.style.background="#818181"; this.style.color="white"; } //设置鼠标滑出该行时的效果 rowObjs[i].cells[0].onmouseout=function(){ this.style.background="#cccccc"; this.style.color="black"; } } //屏蔽菜单的菜单 pop.document.oncontextmenu=function() { return false; } //选择右键菜单的一项后,菜单隐藏 pop.document.onclick=function() { pop.hide(); } //显示菜单 pop.show(event.clientX-1,event.clientY,width,rowCount*25,document.body); return true; } function create() { alert("create" + menuForm.id.value + "!"); } function update() { alert("update" + menuForm.id.value + "!"); } function del() { alert("delete" + menuForm.id.value + "!"); } function clickMenu() { alert("you click a menu!"); } </script>
</html>
发表评论
-
cookie操作
2010-06-03 09:12 1067设置cookie每个cookie都是一个名/值对,可以把下面这 ... -
js 两个小括号 ()() 的用法
2010-06-02 18:08 15035JavaScript 中,考查如下代码: (functi ... -
javascript 的delete操作符
2010-06-02 17:36 2352最近重新温习JS,对delete操作符一直处于一知半解的状态, ... -
try catch finally
2010-05-31 08:38 1486try catch finally是javascript ... -
showModalDialog()、showModelessDialog()方法使用详解
2010-05-30 23:24 1525Javascript有许多内建的方法来产生对话框,如:wind ... -
window.event对象详细介绍
2010-05-30 23:11 27281、event代表事件的状态,例如触发event对象的元素、鼠 ... -
cookie跨域访问的问题
2010-05-14 14:41 4995cookie跨域访问的问题(多个项目间) 今天有一同 ... -
escape() encodeURI() encodeURIComponent() 区别
2010-04-26 18:03 1006escape() 方法: 采用ISO ... -
javaScript 中函数对象 call 方法的使用
2010-04-20 20:44 1506javaScript 中的call() 是一个奇妙的方法,但也 ... -
js 数组 pop,push,unshift,splice,shift
2010-04-17 15:45 5954Js:数组的各种方法范例pop,push,unshift,sp ... -
window.showModalDialog 的使用
2010-03-20 11:04 985父窗口 var a = window.showModal ... -
js中escape,encodeURI,encodeURIComponent三个函数的区别
2010-02-06 19:09 870js对文字进行编码涉及3个函数:escape,encodeUR ... -
关于js中window.location.href,location.href,parent.location.href,top.location.href的用
2009-11-25 14:44 18002"window.location.href" ... -
window.location.href和window.location.replace的区别
2009-06-17 16:26 2514总是在资料上看到 window.location.href和w ... -
javascript 正则
2009-04-14 22:14 840javascript中与正则表达式有关的匹配字符串的函数主要有 ... -
javascript 小技巧
2009-04-01 10:27 824<!-- 另存为图片 --> ... -
javascript 小技巧
2009-03-27 20:08 1056//最小化,最大化,关闭 <object id=min ... -
javascript 小技巧
2009-03-27 19:32 766text文本框 内容保存 <HTML> < ... -
javascript 小技巧
2009-03-27 19:30 815事件源对象 event.srcElement.tagName ... -
javascript 小技巧
2009-03-27 19:26 1038//setTimeout增加参数 <script> ...
相关推荐
在实现右键菜单时,我们可以利用jQuery的事件监听功能,如`$(document).on('contextmenu', function(event) {})`,来捕获用户的右键点击事件。在这个回调函数中,我们可以阻止浏览器默认的右键菜单显示(`event....
本文将深入探讨如何实现这一功能,并且关注于在SVG(可缩放矢量图形)中自定义右键菜单。 首先,我们要理解为何要禁止鼠标右键。在网页上,鼠标右键通常会弹出一个包含诸如“查看源代码”、“保存图片”等选项的...
本篇文章将深入探讨如何使用jQuery来实现一个右键菜单功能,这在许多交互式网页应用中是非常常见的需求。 首先,理解jQuery的核心概念是至关重要的。jQuery对象通过$()函数创建,它可以用来选择DOM元素、操作DOM、...
本文将深入探讨如何利用jQuery实现右键菜单功能,包括新增菜单、修改菜单、删除菜单以及各种样式的显示方式。 **一、理解jQuery右键菜单的基本原理** jQuery右键菜单功能主要是通过监听鼠标右键点击事件(`...
综上所述,"Web右键菜单 很不错的右键菜单"可能是一个致力于提升用户体验的Web开发实践,通过JavaScript、CSS和HTML技术实现自定义功能,同时兼顾了易用性、扩展性和性能优化。通过深入理解和应用这些技术,开发者...
总的来说,谷歌地图的右键菜单功能是通过结合谷歌地图API和JavaScript事件处理来实现的,它极大地丰富了地图应用的交互性。开发者可以根据需求定制菜单内容,实现诸如定位、导航、信息查询等多种实用功能。通过深入...
本文将深入探讨如何使用JavaScript实现右键菜单,特别是如何动态添加菜单项,并在菜单项中添加图标、文本以及处理点击事件。此外,我们还将讨论在不同浏览器(如IE、Firefox和Chrome)中的兼容性问题。 首先,右键...
标题"iframe里无右键菜单"正是针对这一需求,描述中提到的解决方案是创建一个既简单又实用的方法来实现这一功能。 `contextmenu`是HTML5中的一个事件,它与右键菜单相关。当用户在页面上执行右键点击时,浏览器会...
在ECharts中,用户可以通过自定义交互行为来增强图表的功能,例如添加右键菜单,以实现更多的操作选项。 标题“echarts右键菜单实例 --- 不修改源码”表明我们将探讨如何在ECharts图表上添加右键菜单,而无需直接...
高德地图API并没有直接提供右键菜单功能,但开发者可以结合JavaScript事件监听和自定义函数来实现。具体步骤包括: 1. 监听地图的`contextmenu`(右键点击)事件。 2. 在事件触发时,阻止浏览器默认的右键菜单显示,...
代码文件`code.htm`很可能是实现这一功能的HTML页面,它可能包含了树形菜单的基本结构和右键菜单的触发器。CSS文件`css`则负责定义样式,包括树形菜单的层次感、节点样式以及右键菜单的布局和外观。 具体实现上,树...
总的来说,"网页右键菜单封装类 实现web右点击菜单"这个话题涵盖了JavaScript事件处理、DOM操作、HTML结构设计、CSS样式编写以及代码封装和复用等多个方面,是Web前端开发中的一个重要实践。通过学习和掌握这些知识...
html+js+css实现 右键菜单功能
在提供的`ol3-contextmenu-master`压缩包中,很可能是包含了一个已经实现的OpenLayers右键菜单扩展。这个扩展可能包含了上述所有步骤的实现,包括事件监听、菜单构建、样式和功能逻辑。开发者可以通过阅读源代码学习...
为了实现右键菜单,我们需要在表格单元格(td)上监听鼠标右键事件。 实现步骤如下: 1. 引入Bootstrap的CSS和JS库:确保在HTML文件中引入Bootstrap的CSS样式表和jQuery库,以及Bootstrap的JS文件,这通常包括`...
在提供的文件名列表中,"js"和"css"可能分别代表了实现自定义右键菜单的JavaScript代码和CSS样式文件。"201105"可能是某个版本号或者日期,表示这个功能的实现或更新时间。"新建 文本文档.txt"则可能是开发过程中的...
在ASP.NET中,实现鼠标右键菜单可以提升用户体验,特别是在需要提供快速操作选项时。本项目聚焦于如何在ASP.NET环境中创建一个高效的鼠标右键菜单,集成多种功能,使其成为一种经典的设计模式。 首先,我们需要理解...
它可能包含了与"右键菜单.html"相似的代码,或者是一个简单的HTML页面,通过引入"右键菜单.html"中的脚本来实现右键菜单功能。 在实现自定义右键菜单时,常见的技术包括: 1. **事件监听**:利用JavaScript的事件...
本文将深入探讨如何利用JavaScript实现自定义鼠标右键菜单的功能。 首先,我们需要理解浏览器的默认行为。当用户在网页上点击鼠标右键时,通常会弹出一个包含基本浏览器操作(如"查看源代码"、"保存页面"等)的标准...