一种在网页中实现自定义菜单显示的方法及装置制造方法

文档序号:6493549阅读:430来源:国知局
一种在网页中实现自定义菜单显示的方法及装置制造方法
【专利摘要】本发明实施例公开了一种在网页中实现自定义菜单显示的方法及装置,其中,所述方法包括:在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息;根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。采用本发明,能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能。
【专利说明】一种在网页中实现自定义菜单显示的方法及装置
【技术领域】
[0001]本发明涉及自定义菜单显示【技术领域】,尤其涉及一种在网页中实现自定义菜单显示的方法及装置。
【背景技术】
[0002]在计算机领域中,右键菜单是指用户在运行计算机过程中,通过点击鼠标右键而弹出的包括多个选项的列表,在右键菜单中,用户可以点击左键选择其中的一个选项以进行相应的控制操作,而如果在菜单外点击左键,则计算机系统会隐藏该右键菜单。现有的右键菜单为系统菜单,包括已经设置好的各类不同的菜单项,系统菜单中的菜单项作为相应功能的入口提供给用户,以便用户快捷地打开相应的处理功能对当前右键点击时所处位置的元素进行处理。
[0003]现有技术中,右键菜单是静态的,即各菜单项均已预先制作确定,并不能够根据当前右键点击时所处位置的页面元素动态生成并加载自定义菜单。

【发明内容】

[0004]本发明实施例所要解决的技术问题在于,提供一种在网页中实现自定义菜单显示的方法及装置,可进行动态自定义菜单的生成以及显示。
[0005]为了解决上述技术问题,本发明实施例提供了一种在网页中实现自定义菜单显示的方法,包括:
[0006]在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息;
[0007]根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0008]显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0009]其中,所述在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息,包括:
[0010]在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置;
[0011]若是,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成配置信息。
[0012]其中,所述根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单,包括:
[0013]根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项;
[0014]将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0015]其中,所述自定义菜单的宽度值为生成的自定义菜单项中宽度的最大值。
[0016]其中,所述根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项,包括:
[0017]绘制文档对象模型节点;
[0018]根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节点;
[0019]将生成的文本节点和/或图标节点构成自定义菜单项。
[0020]其中,所述根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项,包括:
[0021]绘制文档对象模型节点;
[0022]根据配置信息中所指示的菜单项文本和/或菜单项图标,并根据所述文档对象模型节点,生成自定义菜单项;
[0023]在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单;
[0024]根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单;
[0025]将所述子菜单与所述生成的自定义菜单项关联。
[0026]其中,还包括:
[0027]在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项;
[0028]在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
[0029]其中,所述根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单,还包括:
[0030]禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。
[0031]其中,所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单之前,还包括:
[0032]构造自定义菜单边框的装饰性节点,以便于在所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。
[0033]相应地,本发明实施例还提供了一种在网页中实现自定义菜单显示的装置,包括:
[0034]生成模块,用于在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息;
[0035]获取模块,用于根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0036]显示模块,用于显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0037]其中,所述生成模块包括:
[0038]判断单元,用于在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置;
[0039]生成单元,用于所述判断单元的判断结果为是时,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成配置信息。
[0040]其中,所述获取模块包括:
[0041]菜单项生成单元,用于根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项;
[0042]菜单生成单元,用于将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0043]其中,所述自定义菜单的宽度值为生成的自定义菜单项中宽度的最大值。
[0044]其中,所述菜单项生成单元包括:
[0045]第一绘制子单元,用于绘制文档对象模型节点;
[0046]第一生成子单元,用于根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节点;
[0047]第一构造子单元,用于将生成的文本节点和/或图标节点构成自定义菜单项。
[0048]其中,所述菜单项生成单元包括:
[0049]第二绘制子单元,用于绘制文档对象模型节点;
[0050]第二生成子单元,用于根据配置信息中所指示的菜单项文本和/或图标,并根据所述文档对象模型节点,生成菜单项;
[0051]节点生成子单元,用于在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单;
[0052]第三生成子单元,用于根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单;
[0053]关联子单元,用于将所述子菜单与所述生成的自定义菜单项关联。
[0054]其中,还包括:
[0055]子菜单显示模块,用于在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项;
[0056]隐藏模块,用于在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
[0057]其中,还包括:屏蔽模块,用于禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。
[0058]其中,还包括:构造模块,用于构造自定义菜单边框的装饰性节点,以便于在所述显示模块显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。
[0059]实施本发明实施例,具有如下有益效果:
[0060]本发明能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能。
【专利附图】

【附图说明】
[0061]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0062]图1是本发明实施例的一种在网页中实现自定义菜单显示的方法的流程示意图;
[0063]图2是本发明实施例的另一种在网页中实现自定义菜单显示的方法的流程示意图;
[0064]图3是本发明实施例的生成在网页中实现自定义菜单的方法的流程示意图;
[0065]图4是本发明实施例的一种在网页中实现自定义菜单显示的装置的结构示意图;
[0066]图5是本发明实施例的另一种在网页中实现自定义菜单显示的装置的结构示意图;
[0067]图6是图5中的菜单项生成单元的其中一种具体结构示意图;
[0068]图7是图5中的菜单项生成单元的其中另一种具体结构示意图。
【具体实施方式】
[0069]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0070]图1是本发明实施例的一种在网页中实现自定义菜单显示的方法的流程示意图;本发明实施例的所述方法可应用在各类电脑等待鼠标功能的终端设备中,具体的,本实施例的所述方法包括:
[0071]SlOl:在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息。
[0072]在检测到右键点击操作事件时,可根据用户当前点击的位置来确定应该显示系统菜单,还是显示自定义菜单,如果用户右键点击时鼠标光标所处的位置为电脑桌面,或者网页页面的空白处等地方,则需要显示默认的系统菜单,而如果是位于一些预先被指定为需要显示自定义菜单的对象所处的位置,例如预先指定了图片是需要显示自定义菜单的图片对象,而鼠标光标所处位置为一张图片时,则需要显示自定义菜单,需要根据个人电脑等终端设备中的功能程序,根据鼠标光标当前所处位置的页面元素生成配置信息,例如,根据鼠标光标当前所处位置的页面元素为图片时,则根据系统的功能程序,生成包括放大、缩小等配置项,以及根据美图修饰的用于进行图片处理的功能程序确定的名为美图修饰配置项
坐寸ο[0073]所述配置信息中自定义菜单的标题ID,该自定义菜单中每个自定义菜单项的文本信息、图标信息等,所述配置信息的生成步骤可以包括:从终端系统中已安装的功能中,选择能够对鼠标光标当前所处位置的页面元素进行处理的功能,然后将用于描述此类功能的文本信息和/或图标信息等信息加入到配置模板中得到配置信息,而该配置模板的标题则作为此次生成的自定义菜单的标题。
[0074]S102:根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0075]可以为根据配置信息中的文本信息和/或图标信息首先生成各个自定义菜单项,然后根据各个自定义菜单项中的最大宽度,来确定菜单节点的宽度,并把自定义菜单项添加到菜单节点中,得到包括所有自定义菜单项的自定义菜单。
[0076]具体生成自定义菜单项的步骤可以包括:绘制文档对象模型节点;根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的自定义菜单项图标生成图标节点;将生成的文本节点和/或图标节点构成自定义菜单项。
[0077]S103:显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0078]将生成的自定义菜单显示给用户,以便于用户点击选中其中的某一自定义菜单项后,调用对应的功能程序对所述元素执行相应的处理。需要说明的是,自定义菜单中的自定义菜单项可以采用类似于快捷方式的处理方法进行处理,以实现处理功能接口的功能,其具体实施过程可参考现有的实现方式。
[0079]通过上述实施例的描述可知,本发明实施例具有以下有益效果:
[0080]本发明能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能。
[0081]再请参见图2,是本发明实施例的另一种在网页中实现自定义菜单显示的方法的流程示意图;本发明实施例的所述方法可应用在各类电脑等待鼠标功能的终端设备中,并且同时以在本实施例中以windows操作系统中实现所述在网页中实现自定义菜单显示的方法为例进行详细说明,具体的,本实施例的所述在网页中实现自定义菜单显示的方法包括:
[0082]S201:在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置。
[0083]S202:若是,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成
配置信息。
[0084]在检测到右键点击操作事件时,可根据用户当前点击的位置来确定应该显示系统菜单,还是显示自定义菜单,如果用户右键点击时鼠标光标所处的位置为电脑桌面,或者网页页面的空白处等地方,则需要显示默认的系统菜单,而如果是位于一些预先被指定为需要显示自定义菜单的对象所处的位置,例如预先指定了图片是需要显示自定义菜单的图片对象,而鼠标光标所处位置为一张图片时,则需要显示自定义菜单。
[0085]具体的,可以在网页页面的根节点document中监听右键点击contextmenu事件,在该事件处理方法中,根据window, event.returnValue变量的值或者该右键点击事件的enableDefaultContextMenu属性的值来决定是否显示系统菜单。可以通过向外暴露useDefaultContextMenu方法根据鼠标右键点击时所处的位置的页面元素,来控制其中的window, event.returnValue 变量的值或者 enableDefaultContextMenu 属性的值,从而确定显示系统菜单还是自定义菜单。
[0086]其中,所述的window, event.returnValue变量是指:在IE内核的浏览器中,window, event是一个全局对象,当有事件触发时,会修改里面的returnValue的值。所述的enableDefaultContextMenu属性是指:在非IE内核的浏览器中,会将事件的相关属性信息作为第一个参数传递给事件处理方法。
[0087]S203:根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0088]在生成菜单节点的同时,还可以根据需要构造自定义菜单边框的装饰性节点,以便于在所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。
[0089]具体实现时,采用初始化方法init,该init方法的参数为所述配置信息中的配置项,根据配置项提供的ID,或者页面中已生成的自定义菜单数目生成一个ID为contextmenu_XX的div节点,并构造自定义菜单边框的装饰性节点,将需要显示的自定义菜单项添加到所述contextmenu_XX的div节点中。
[0090]进一步具体的,还可以禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。即禁止自定义菜单上的鼠标弹起mouseup、鼠标按下mousedown以及鼠标点击事件click事件的冒泡,这类事件只是与相应的自定义菜单交互,不应该冒泡给父级元素。
[0091 ] S204:显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0092]即将已经添加了所有生成的自定义菜单项的自定义菜单显示给用户。具体可以通过控制层叠样式表CSS的样式,设置自定义菜单可见即完成了自定义菜单的显示。
[0093]具体实现时,在自定义菜单的显示show方法中,可以相应添加鼠标进入mouseenter和鼠标移出mouseleave事件,当鼠标光标进入自定义菜单时,设置其中的_isHovered属性为true,表示光标位于自定义菜单内,而移出自定义菜单时,则将其置为false,同时,可以在documen.body上绑定鼠标点击click事件,这样,当鼠标移出并点击其他地方时,当前显示的所述自定义菜单便会消失,而在隐藏hide方法中,可以移除鼠标进入、鼠标移出以及鼠标点击事件,以减少内存的使用。
[0094]S205:在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项。
[0095]子菜单项继承于自定义菜单项,在根据配置信息生成自定义菜单项时,若该自定义菜单项包括子菜单,则需要在该自定义菜单项中增加一个用于指示该自定义菜单项含有子菜单的节点,而子菜单中每一项的生成方式与自定义菜单项的生成方式相同。
[0096]S206:在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
[0097]同样,子菜单上同样绑定相应的鼠标进入、鼠标移出以及鼠标点击事件等,以实现相应子菜单的显示、点击启用或者隐藏等。[0098]进一步的具体的,再请参见图3,是本发明实施例的生成自定义菜单的方法的流程示意图;如上所述,所设计的配置信息是根据页面元素,并根据系统中已存在的功能程序获得。具体的,生成所述自定义菜单的方法具体包括:
[0099]S301:根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项。
[0100]所述S301具体可以包括:绘制文档对象模型节点;根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节点;将生成的文本节点和/或图标节点构成自定义菜单项。
[0101]具体实现时,可以通过系统的调用增加元素additems方法,生成对应的菜单项ContextMenuItem(右键菜单元素),然后通过计算出每个菜单项的宽度来决定菜单的最大宽度。每个菜单项的宽度值是通过getTextWidth方法完成,该getTextWidth方法的实现为:在页面中创建一个文本节点,将其位置设为可视窗口外,添加至页面可视元素的根节点body节点中,获取其OffsetWidth属性即元素的可视宽度即可。
[0102]对于ContextMenuItem对象,在对其初始化方法init中,调用render方法绘制文档对象模型dom节点,如果配置信息中除含有文本外,还含有图标icon信息,则在自定义菜单项的文本节点前添加图片节点,否则只生成文本节点。绘制完成后,在dom节点上添加点击click事件,事件处理中,如果有对应的正在点击onclick属性并且菜单项是启用状态,首先调用onclick方法,然后逐级调用onclickDocument方法将其隐藏。否则,不作任何处理。
[0103]如果根据配置信息确定某一自定义菜单的菜单项包括子菜单,那么,所述S301具体可以包括:绘制文档对象模型节点;根据配置信息中所指示的菜单项文本和/或菜单项图标,并根据所述文档对象模型节点,生成自定义菜单项;在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单;根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单;将所述子菜单与所述生成的自定义菜单项关联。
[0104]即除了通过上述具体实现时得到的子菜单项,还包括某一自定义菜单项的子菜单项的设置与生成,即还包括ContextSubmenuItem即子菜单元素。所述的ContextSubmenuItem继承于上述的ContextMenuItem对象,是实现多级菜单的关键。在初始化init方法中,同样调用render绘制文档对象模型dom节点,增加一个‘〈spanclass= “subicom”>〈/span>’节点用于指示该自定义菜单项含有子菜单。其click事件也与ContextMenuItem对象的类似,只是不在子菜单上隐藏父级菜单即该子菜单所述自定义菜单项的自定义菜单。为了实现多级菜单,其也添加了鼠标进入mouseenter和鼠标移出mouseleave事件,如果该子菜单所在自定义菜单项启用了,则显示或者隐藏相应的子菜单项,如果是禁用状态,则不作处理。
[0105]在子菜单上监听mouseenter以及mouseleave事件,在监听到所述mouseenter事件时,给该子菜单所在自定义菜单项的节点上添加contextmenuitem_hover类,利用css来实现选中态的效果;而在监听到所述mouseleave事件时,则隐藏该子菜单,并移除子菜单所在自定义菜单项的节点的contextmenuitem_hover类,取消选中态。
[0106]S302:将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
[0107]将生成的每一个自定义菜单项添加到所述菜单节点中,即可实现自定义菜单。需要说明的是,自定义菜单中的自定义菜单项可以采用类似于快捷方式的处理方法进行处理,以实现处理功能接口的功能,其具体实施过程可参考现有的实现方式。
[0108]本发明能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能,并且由于自定义菜单的父节点或者祖先节点可能也添加了鼠标操作的响应事件,如果自定义菜单的鼠标操作等事件冒泡到其祖先节点,刚会触发祖先节点相关的处理器,造成误操作,因此,本发明实施例中,禁止自定义菜单中的鼠标事件向上冒泡,可有效避免误操作的产生。进一步的,自定义菜单的实现以及处理对系统资源的占用较低,在菜单被隐藏后,该自定义菜单相应的事件监听器等被移除,进一步的避免了系统资源的浪费。
[0109]下面对本发明的自定义显示装置进行详细说明。
[0110]请参见图4,是本发明实施例的一种在网页中实现自定义菜单显示的装置的结构示意图;本发明实施例的所述自定义菜单可应用于个人电脑等终端设备中,具体可以包括:
[0111]生成模块1,用于在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息;
[0112]获取模块2,用于根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0113]显示模块3,用于显示所述添加了根据配置信息生成的所有自定义菜单项的自定
义菜单。
[0114]所述生成模块I在检测到右键点击操作事件时,可根据用户当前点击的位置来确定应该显示系统菜单,还是显示自定义菜单,如果用户右键点击时鼠标光标所处的位置为电脑桌面,或者网页页面的空白处等地方,则需要显示默认的系统菜单,而如果是位于一些预先被指定为需要显示自定义菜单的对象所处的位置,例如预先指定了图片是需要显示自定义菜单的图片对象,而鼠标光标所处位置为一张图片时,则需要显示自定义菜单。
[0115]所述配置信息中自定义菜单的标题ID,该自定义菜单中每个自定义菜单项的文本信息、图标信息等,所述配置信息的生成步骤可以包括:从终端系统中已安装的功能中,选择能够对鼠标光标当前所处位置的页面元素进行处理的功能,然后将用于描述此类功能的文本信息和/或图标信息等信息加入到配置模板中得到配置信息,而该配置模板的标题则作为此次生成的自定义菜单的标题。
[0116]所述获取模块2可以为根据配置信息中的文本信息和/或图标信息首先生成各个自定义菜单项,然后根据各个自定义菜单项中的最大宽度,来确定菜单节点的宽度,并把自定义菜单项添加到菜单节点中,得到包括所有自定义菜单项的自定义菜单。
[0117]所述获取模块2获取自定义菜单具体可以为:绘制文档对象模型节点;根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的自定义菜单项图标生成图标节点;将生成的文本节点和/或图标节点构成自定义菜单项。[0118]所述显示模块3将生成的自定义菜单显示给用户,以便于用户点击选中其中的某一自定义菜单项后,调用对应的功能程序对所述元素执行相应的处理。需要说明的是,自定义菜单中的自定义菜单项可以采用类似于快捷方式的处理方法进行处理,以实现处理功能接口的功能,其具体实施过程可参考现有的实现方式。
[0119]通过上述实施例的描述可知,本发明具有以下优点:
[0120]本发明能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能。
[0121]再请参见图5至图7,对本发明实施例的另一种在网页中实现自定义菜单显示的装置进行说明,本发明实施例的所述装置可以设置在个人电脑等终端设备中,图5是本发明实施例的另一种在网页中实现自定义菜单显示的装置的结构示意图;所述装置包括上一实施例中的生成模块1、获取模块2以及显示模块3,进一步的,请参见图5,所述生成模块I具体可以包括:
[0122]判断单元11,用于在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置;
[0123]生成单元12,用于所述判断单元11的判断结果为是时,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成配置信息。
[0124]在检测到右键点击操作事件时,所述判断单元11可根据用户当前点击的位置来确定应该显示系统菜单,还是显示自定义菜单,如果用户右键点击时鼠标光标所处的位置为电脑桌面,或者网页页面的空白处等地方,则需要显示默认的系统菜单,而如果是位于一些预先被指定为需要显示自定义菜单的对象所处的位置,例如预先指定了图片是需要显示自定义菜单的图片对象,而鼠标光标所处位置为一张图片时,则需要显示自定义菜单,所述生成单元12则需要根据个人电脑等终端设备中的功能程序,根据鼠标光标当前所处位置的页面元素生成配置信息。
[0125]进一步的,再请参见图5,所述获取模块2还可以包括:
[0126]菜单项生成单元21,用于根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项;
[0127]菜单生成单元22,用于将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单;
[0128]其中,所述自定义菜单的宽度值为生成的自定义菜单项中宽度的最大值。
[0129]在所述生成模块I生成菜单节点的同时,还可以根据需要构造自定义菜单边框的装饰性节点,以便于在所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。请参见图5,本实施例的所述装置还可以包括:
[0130]构造模块4,用于构造自定义菜单边框的装饰性节点,以便于在所述显示模块显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。以及
[0131]屏蔽模块5,用于禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。
[0132]进一步请参见图6,是图5中的菜单项生成单元的其中一种具体结构示意图;所述菜单项生成单元21包括:
[0133]第一绘制子单元211,用于绘制文档对象模型节点;
[0134]第一生成子单元212,用于根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节点;
[0135]第一构造子单元213,用于将生成的文本节点和/或图标节点构成自定义菜单项。
[0136]而如果根据配置信息确定某一自定义菜单的菜单项包括子菜单,那么,再请参见图7,是图5中的菜单项生成单元的其中另一种具体结构示意图。
[0137]所述菜单项生成单元21包括:
[0138]第二绘制子单元214,用于绘制文档对象模型节点;
[0139]第二生成子单元215,用于根据配置信息中所指示的菜单项文本和/或图标,并根据所述文档对象模型节点,生成菜单项;
[0140]节点生成子单元216,用于在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单;
[0141]第三生成子单元217,用于根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单;
[0142]关联子单元218,用于将所述子菜单与所述生成的自定义菜单项关联。
[0143]上述两种结构图可同时设置于所述菜单项生成单元21,以便于所述菜单项生成单元21可以根据配置信息,不仅进行单独的菜单项的生成操作,还可以在某菜单项包括子菜单时,能够生成对应的子菜单项,得到子菜单。
[0144]进一步的,再请参见图5,本实施例的所述装置还可以包括:
[0145]子菜单显示模块6,用于在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项。
[0146]隐藏模块7,用于在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
[0147]同样,子菜单上同样绑定相应的鼠标进入、鼠标移出以及鼠标点击事件等,以实现相应子菜单的显示、点击启用或者隐藏等。并且子菜单中各菜单项同样可以采用类似于快捷方式的处理方法进行处理,以实现处理功能接口的功能,其具体实施过程可参考现有的实现方式。
[0148]通过上述实施例的描述可知,本发明具有以下优点:
[0149]本发明能够根据用户右键点击时鼠标光标所处的页面元素生成配置信息,并生成对应的菜单供用户选择,实现了丰富的动态自定义菜单的功能,并且由于自定义菜单的父节点或者祖先节点可能也添加了鼠标操作的响应事件,如果自定义菜单的鼠标操作等事件冒泡到其祖先节点,刚会触发祖先节点相关的处理器,造成误操作,因此,本发明实施例中,禁止自定义菜单中的鼠标事件向上冒泡,可有效避免误操作的产生。进一步的,自定义菜单的实现以及处理对系统资源的占用较低,在菜单被隐藏后,该自定义菜单的相应的事件监听器等被移除,进一步的避免了系统资源的浪费。
[0150]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0151] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种在网页中实现自定义菜单显示的方法,其特征在于,包括: 在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息; 根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单; 显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
2.如权利要求1所述的方法,其特征在于,所述在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息,包括: 在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置; 若是,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成配置信息。
3.如权利要求2所述的方法,其特征在于,所述根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单,包括: 根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项;将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单; 其中,所述自定义菜单的宽度值为生成的自定义菜单项中宽度的最大值。
4.如权利要求3所述的方法,其特征在于,所述根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项,包括: 绘制文档对象模型节点; 根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节点; 将生成的文本节点和/或图标节点构成自定义菜单项。
5.如权利要求3所述的方法,其特征在于,所述根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项,包括: 绘制文档对象模型节点; 根据配置信息中所指示的菜单项文本和/或菜单项图标,并根据所述文档对象模型节点,生成自定义菜单项; 在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单; 根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单; 将所述子菜单与所述生成的自定义菜单项关联。
6.如权利要求4或5所述的方法,其特征在于,还包括: 在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项; 在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
7.如权利要求6所述的方法,其特征在于,所述根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单,还包括: 禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。
8.如权利要求7所述的方法,其特征在于,所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单之前,还包括: 构造自定义菜单边框的装饰性节点,以便于在所述显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单中包括所述装饰性节点。
9.一种在网页中实现自定义菜单显示的装置,其特征在于,包括: 生成模块,用于在监测到右键点击操作事件时,若确定显示自定义菜单,则根据鼠标光标当前所处位置的页面元素生成配置信息; 获取模块,用于根据配置信息生成自定义菜单项以及菜单节点,将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单; 显示模块,用于显示所述添加了根据配置信息生成的所有自定义菜单项的自定义菜单。
10.如权利要求9所述的装置,其特征在于,所述生成模块包括: 判断单元,用于在监测到右键点击操作事件时,判断鼠标光标当前所处位置是否位于需要显示自定义菜单的页面元素的位置; 生成单元,用于所述判断单元的判断结果为是时,则确定显示自定义菜单,根据鼠标光标当前所处位置的页面元素生成配置信息。
11.如权利要求10所述的装置,其特征在于,所述获取模块包括: 菜单项生成单元,用于根据配置信息中所指示的菜单项文本和/或菜单项图标,生成对应的自定义菜单项; 菜单生成单元,用于将生成的自定义菜单项添加到所述菜单节点中,得到添加了根据配置信息生成的所有自定义菜单项的自定义菜单; 其中,所述自定义菜单的宽度值为生成的自定义菜单项中宽度的最大值。
12.如权利要求11所述的装置,其特征在于,所述菜单项生成单元包括: 第一绘制子单元,用于绘制文档对象模型节点; 第一生成子单元,用于根据文档对象模型节点与配置信息中所指示的菜单项文本生成文本节点,和/或根据文档对象模型节点与配置信息中所指示的菜单项图标生成图标节占.第一构造子单元,用于将生成的文本节点和/或图标节点构成自定义菜单项。
13.如权利要求11所述的装置,其特征在于,所述菜单项生成单元包括: 第二绘制子单元,用于绘制文档对象模型节点; 第二生成子单元,用于根据配置信息中所指示的菜单项文本和/或图标,并根据所述文档对象模型节点,生成菜单项;节点生成子单元,用于在所述文档对象模型节点中增加子菜单节点,以指示所述生成的自定义菜单项包括子菜单; 第三生成子单元,用于根据配置信息中所指示的子菜单项文本和/或子菜单项图标,生成对应的各子菜单项,得到子菜单; 关联子单元,用于将所述子菜单与所述生成的自定义菜单项关联。
14.如权利要求12或13所述的装置,其特征在于,还包括: 子菜单显示模块,用于在检测到鼠标进入事件时,若所述鼠标进入事件关联的自定义菜单项包括子菜单,则进一步显示生成的子菜单项; 隐藏模块,用于在检测到鼠标离开事件时,将显示的子菜单项隐藏,并在检测到点击操作时,隐藏所述显示的自定义菜单。
15.如权利要求14所述的装置,其特征在于,还包括: 屏蔽模块,用于禁止将对所述得到的自定义菜单上的鼠标操作事件冒泡给该自定义菜单所属的父节点,所述鼠标操作事件包括鼠标弹起事件、鼠标按下事件、鼠标点击事件中的任一种或多种。
16.如权利要求15所述的装置,其特征在于,还包括: 构造模块,用于构造自定义菜单边框的装饰性节点,以便于在所述显示模块显示所述添加了根据配置信息生成 的所有自定义菜单项的自定义菜单中包括所述装饰性节点。
【文档编号】G06F9/44GK103902258SQ201210568532
【公开日】2014年7月2日 申请日期:2012年12月25日 优先权日:2012年12月25日
【发明者】李晶 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1