`
q272156430
  • 浏览: 275818 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HTML中实现右键菜单功能

阅读更多

 

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>

<!-- 右键菜单结束-->
<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>

 

 

分享到:
评论

相关推荐

    HTML实现右键菜单

    在实现右键菜单时,我们可以利用jQuery的事件监听功能,如`$(document).on('contextmenu', function(event) {})`,来捕获用户的右键点击事件。在这个回调函数中,我们可以阻止浏览器默认的右键菜单显示(`event....

    禁止鼠标右键及svg中自定义右键菜单

    本文将深入探讨如何实现这一功能,并且关注于在SVG(可缩放矢量图形)中自定义右键菜单。 首先,我们要理解为何要禁止鼠标右键。在网页上,鼠标右键通常会弹出一个包含诸如“查看源代码”、“保存图片”等选项的...

    jQuery实现右键菜单源码

    本篇文章将深入探讨如何使用jQuery来实现一个右键菜单功能,这在许多交互式网页应用中是非常常见的需求。 首先,理解jQuery的核心概念是至关重要的。jQuery对象通过$()函数创建,它可以用来选择DOM元素、操作DOM、...

    jquery 右键菜单功能

    本文将深入探讨如何利用jQuery实现右键菜单功能,包括新增菜单、修改菜单、删除菜单以及各种样式的显示方式。 **一、理解jQuery右键菜单的基本原理** jQuery右键菜单功能主要是通过监听鼠标右键点击事件(`...

    Web右键菜单 很不错的右键菜单

    综上所述,"Web右键菜单 很不错的右键菜单"可能是一个致力于提升用户体验的Web开发实践,通过JavaScript、CSS和HTML技术实现自定义功能,同时兼顾了易用性、扩展性和性能优化。通过深入理解和应用这些技术,开发者...

    谷歌地图右键菜单功能

    总的来说,谷歌地图的右键菜单功能是通过结合谷歌地图API和JavaScript事件处理来实现的,它极大地丰富了地图应用的交互性。开发者可以根据需求定制菜单内容,实现诸如定位、导航、信息查询等多种实用功能。通过深入...

    js右键菜单,菜单项由js动态添加,纯js调用

    本文将深入探讨如何使用JavaScript实现右键菜单,特别是如何动态添加菜单项,并在菜单项中添加图标、文本以及处理点击事件。此外,我们还将讨论在不同浏览器(如IE、Firefox和Chrome)中的兼容性问题。 首先,右键...

    iframe里无右键菜单

    标题"iframe里无右键菜单"正是针对这一需求,描述中提到的解决方案是创建一个既简单又实用的方法来实现这一功能。 `contextmenu`是HTML5中的一个事件,它与右键菜单相关。当用户在页面上执行右键点击时,浏览器会...

    echarts右键菜单实例 --- 不修改源码

    在ECharts中,用户可以通过自定义交互行为来增强图表的功能,例如添加右键菜单,以实现更多的操作选项。 标题“echarts右键菜单实例 --- 不修改源码”表明我们将探讨如何在ECharts图表上添加右键菜单,而无需直接...

    高德地图实现绘制覆盖物,自定义右键菜单

    高德地图API并没有直接提供右键菜单功能,但开发者可以结合JavaScript事件监听和自定义函数来实现。具体步骤包括: 1. 监听地图的`contextmenu`(右键点击)事件。 2. 在事件触发时,阻止浏览器默认的右键菜单显示,...

    js树形菜单加右键菜单

    代码文件`code.htm`很可能是实现这一功能的HTML页面,它可能包含了树形菜单的基本结构和右键菜单的触发器。CSS文件`css`则负责定义样式,包括树形菜单的层次感、节点样式以及右键菜单的布局和外观。 具体实现上,树...

    网页右键菜单封装类 实现web右点击菜单

    总的来说,"网页右键菜单封装类 实现web右点击菜单"这个话题涵盖了JavaScript事件处理、DOM操作、HTML结构设计、CSS样式编写以及代码封装和复用等多个方面,是Web前端开发中的一个重要实践。通过学习和掌握这些知识...

    右键菜单功能实现.html

    html+js+css实现 右键菜单功能

    Openlayers扩展右键菜单

    在提供的`ol3-contextmenu-master`压缩包中,很可能是包含了一个已经实现的OpenLayers右键菜单扩展。这个扩展可能包含了上述所有步骤的实现,包括事件监听、菜单构建、样式和功能逻辑。开发者可以通过阅读源代码学习...

    基于bootstrap的右键菜单例子

    为了实现右键菜单,我们需要在表格单元格(td)上监听鼠标右键事件。 实现步骤如下: 1. 引入Bootstrap的CSS和JS库:确保在HTML文件中引入Bootstrap的CSS样式表和jQuery库,以及Bootstrap的JS文件,这通常包括`...

    自定义右键菜单效果

    在提供的文件名列表中,"js"和"css"可能分别代表了实现自定义右键菜单的JavaScript代码和CSS样式文件。"201105"可能是某个版本号或者日期,表示这个功能的实现或更新时间。"新建 文本文档.txt"则可能是开发过程中的...

    ASP.NET 鼠标右键菜单 右键菜单 ASP.NET鼠标右键菜单 C#右键菜单

    在ASP.NET中,实现鼠标右键菜单可以提升用户体验,特别是在需要提供快速操作选项时。本项目聚焦于如何在ASP.NET环境中创建一个高效的鼠标右键菜单,集成多种功能,使其成为一种经典的设计模式。 首先,我们需要理解...

    右键菜单使用

    它可能包含了与"右键菜单.html"相似的代码,或者是一个简单的HTML页面,通过引入"右键菜单.html"中的脚本来实现右键菜单功能。 在实现自定义右键菜单时,常见的技术包括: 1. **事件监听**:利用JavaScript的事件...

    JS设置鼠标右键菜单

    本文将深入探讨如何利用JavaScript实现自定义鼠标右键菜单的功能。 首先,我们需要理解浏览器的默认行为。当用户在网页上点击鼠标右键时,通常会弹出一个包含基本浏览器操作(如"查看源代码"、"保存页面"等)的标准...

Global site tag (gtag.js) - Google Analytics