一种事件调用方法及装置制造方法

文档序号:6637572阅读:122来源:国知局
一种事件调用方法及装置制造方法
【专利摘要】本申请公开了一种事件调用方法及装置,方法包括:在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,查询所述调用事件在当前浏览器下对应的代理函数,利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。本申请预先存储了不同的调用事件在不同的浏览器下对应的代理函数,代理函数所执行的是预存的与调用事件对应的实际函数,实现了在不同浏览器中事件的正常调用。
【专利说明】一种事件调用方法及装置

【技术领域】
[0001]本申请涉及软件【技术领域】,更具体地说,涉及一种事件调用方法及装置。

【背景技术】
[0002]随着浏览器不断的发展,各大软件公司也都推出了不同内核的浏览器,来瓜分浏览器市场。目前,市面上主流的浏览器包括IE、Firefox等,而不同内核的不同浏览器对事件的处理方法不同,这给前端web页面开发带来了非常大的困扰。以最常用的绑定事件为例,IE浏览器提供的是attachEvent以及detachEvent绑定方法,而firefox、chrome等gecko 以及 webkit 内核的浏览器提供的是 addEventListener 和 removeEventListener 绑定方法。


【发明内容】

[0003]有鉴于此,本申请提供了一种事件调用方法,用于解决web页面应用不能够适用于不同内核的浏览器的问题。
[0004]为了实现上述目的,现提出的方案如下:
[0005]一种事件调用方法,包括:
[0006]在检测到web页面上的文档对象模型被触发时,确定对应的调用事件;
[0007]查询所述调用事件在当前浏览器下对应的代理函数;
[0008]利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
[0009]优选地,所述在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,包括:
[0010]确定所述文档对象模型被触发的类型,并确定与该类型的触发操作对应的调用事件。
[0011]优选地,所述查询所述调用事件在当前浏览器下对应的代理函数,包括:
[0012]确定当前浏览器的型号;
[0013]在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
[0014]优选地,在所述与所述调用事件对应的实际函数的个数为多个时,所述利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数,包括:
[0015]按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行所述实际函数。
[0016]优选地,还包括:
[0017]为用户指定的文档对象模型添加指定的调用事件,包括:
[0018]将与所述指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数及包装后的实际函数;
[0019]将包装后的实际函数存储至缓存区;
[0020]将确定的代理函数与所述指定的调用事件进行关联。
[0021]一种事件调用装置,包括:
[0022]事件确定单元,用于在检测到web页面上的文档对象模型被触发时,确定对应的调用事件;
[0023]代理函数确定单元,用于查询所述调用事件在当前浏览器下对应的代理函数;
[0024]代理函数执行单元,用于利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
[0025]优选地,所述事件确定单元包括:
[0026]第一事件确定子单元,用于确定所述文档对象模型被触发的类型,并确定与该类型的触发操作对应的调用事件。
[0027]优选地,所述代理函数确定单元包括:
[0028]浏览器确定单元,用于确定当前浏览器的型号;
[0029]代理函数查询单元,用于在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
[0030]优选地,所述代理函数执行单元包括:
[0031]第一代理函数执行子单元,用于在所述与所述调用事件对应的实际函数的个数为多个时,按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行所述实际函数。
[0032]优选地,还包括:
[0033]事件添加单元,用于为用户指定的文档对象模型添加指定的调用事件,该过程包括:将与所述指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数及包装后的实际函数;将包装后的实际函数存储至缓存区;将确定的代理函数与所述指定的调用事件进行关联。
[0034]从上述的技术方案可以看出,本申请实施例提供的事件调用方法,在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,查询所述调用事件在当前浏览器下对应的代理函数,利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。本申请预先存储了不同的调用事件在不同的浏览器下对应的代理函数,代理函数所执行的是预存的与调用事件对应的实际函数,实现了在不同浏览器中事件的正常调用。

【专利附图】

【附图说明】
[0035]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0036]图1为本申请实施例公开的一种事件调用方法流程图;
[0037]图2为本申请实施例公开的一种事件调用装置结构示意图;
[0038]图3为本申请实施例公开的一种事件确定单元结构示意图;
[0039]图4为本申请实施例公开的一种代理函数确定单元结构示意图;
[0040]图5为本申请实施例公开的一种代理函数执行单元结构示意图。

【具体实施方式】
[0041]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0042]参见图1,图1为本申请实施例公开的一种事件调用方法流程图。
[0043]如图1所示,该方法包括:
[0044]步骤S100、在检测到web页面上的文档对象模型被触发时,确定对应的调用事件;
[0045]具体地,不同的触发操作对应不同的调用事件,例如单击、双击、右击等等。根据文档对象模型被触发的类型,确定对应的调用事件。
[0046]步骤S110、查询所述调用事件在当前浏览器下对应的代理函数;
[0047]不同的浏览器下,相同的调用事件会对应不同的代理函数。或者说,一个调用事件在不同的浏览器下其对应的代理函数是不同的。代理函数在执行过程中会执行其下对应的实际函数。
[0048]步骤S120、利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
[0049]具体地,我们事先定义一个缓存区,在其中存储每一个文档对象模型对应的事件,各事件在不同浏览器下对应的代理函数,以及各个代理函数需要执行的实际函数。
[0050]本申请实施例提供的事件调用方法,在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,查询所述调用事件在当前浏览器下对应的代理函数,利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。本申请预先存储了不同的调用事件在不同的浏览器下对应的代理函数,代理函数所执行的是预存的与调用事件对应的实际函数,实现了在不同浏览器中事件的正常调用。
[0051]并且,通过本申请的方法,缓存区中事件缓存架构一目了然,对于每个文档对象模型所绑定的事件,以及每个事件对应的不同的代理函数,也可以很方便的进行管理。
[0052]其中,上述查询所述调用事件在当前浏览器下对应的代理函数的过程,可以包括:首先确定当前我浏览器的型号,然后在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
[0053]这里,浏览器的型号用于区分不同的浏览器,例如IE、Firefox等等。
[0054]需要解释的是,在上述调用事件对应的实际函数的个数为多个时,代理函数执行与所述调用事件对应的实际函数时,可以按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行实际函数。也即,我们每次为文档对象模型添加事件对应的实际函数时,将实际函数按照一定的顺序存储至缓存区中,而在执行的过程中,按照先进先出的原则,顺序执行实际函数。从而保证了执行顺序不会混乱。
[0055]在上述基础上,本申请实施例提供的方法还可以包括一个为用户指定的文档对象模型添加指定的调用事件的过程。该过程包括:
[0056]将与用户指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数以及包装后的实际函数,建立了当前浏览器下代理函数与实际函数之间的对应关系。将包装后的实际函数存储至缓存区中,然后将确定的代理函数与用户指定的调用事件进行关联。
[0057]可以理解的是,在存在事件绑定过程的同时,当然还可以有事件解除绑定的过程。在取消事件绑定时,先从缓存中拿到之前存放进行的与该事件对应的代理函数,然后将其和文档对象模型解除绑定,另外将该代理函数从缓存中清理出去。
[0058]同时,本申请还可以具备事件监听功能。通过分析缓存区,可以列出文档对象模型已经绑定的代理函数及实际函数等信息。
[0059]下面对本申请实施例提供的事件调用装置进行描述,下文描述的事件调用装置与上文描述的事件调用方法可相互对应参照。
[0060]如图2所示,该装置包括:
[0061]事件确定单元21,用于在检测到web页面上的文档对象模型被触发时,确定对应的调用事件;
[0062]代理函数确定单元22,用于查询所述调用事件在当前浏览器下对应的代理函数;
[0063]代理函数执行单元23,用于利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
[0064]可选的,如图3所示,上述事件确定单元21可以包括:
[0065]第一事件确定子单元31,用于确定所述文档对象模型被触发的类型,并确定与该类型的触发操作对应的调用事件。
[0066]可选的,如图4所示,上述代理函数确定单元22可以包括:
[0067]浏览器确定单元41,用于确定当前浏览器的型号;
[0068]代理函数查询单元42,用于在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
[0069]可选的,如图5所示,上述代理函数执行单元23包括:
[0070]第一代理函数执行子单元51,用于在所述与所述调用事件对应的实际函数的个数为多个时,按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行所述实际函数。
[0071]可选的,在上述基础上,本申请实施例公开的事件调用装置还可以包括:事件添加单元,用于为用户指定的文档对象模型添加指定的调用事件,该过程包括:将与所述指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数及包装后的实际函数;将包装后的实际函数存储至缓存区;将确定的代理函数与所述指定的调用事件进行关联。
[0072]本申请实施例提供的事件调用装置,在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,查询所述调用事件在当前浏览器下对应的代理函数,利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。本申请预先存储了不同的调用事件在不同的浏览器下对应的代理函数,代理函数所执行的是预存的与调用事件对应的实际函数,实现了在不同浏览器中事件的正常调用。
[0073]最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0074]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0075]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种事件调用方法,其特征在于,包括: 在检测到web页面上的文档对象模型被触发时,确定对应的调用事件; 查询所述调用事件在当前浏览器下对应的代理函数; 利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
2.根据权利要求1所述的方法,其特征在于,所述在检测到web页面上的文档对象模型被触发时,确定对应的调用事件,包括: 确定所述文档对象模型被触发的类型,并确定与该类型的触发操作对应的调用事件。
3.根据权利要求1所述的方法,其特征在于,所述查询所述调用事件在当前浏览器下对应的代理函数,包括: 确定当前浏览器的型号; 在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
4.根据权利要求1所述的方法,其特征在于,在所述与所述调用事件对应的实际函数的个数为多个时,所述利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数,包括: 按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行所述实际函数。
5.根据权利要求1-4任意一项所述的方法,其特征在于,还包括: 为用户指定的文档对象模型添加指定的调用事件,包括: 将与所述指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数及包装后的实际函数; 将包装后的实际函数存储至缓存区; 将确定的代理函数与所述指定的调用事件进行关联。
6.一种事件调用装置,其特征在于,包括: 事件确定单元,用于在检测到web页面上的文档对象模型被触发时,确定对应的调用事件; 代理函数确定单元,用于查询所述调用事件在当前浏览器下对应的代理函数; 代理函数执行单元,用于利用查询到的所述代理函数执行预存在缓存区中与所述调用事件对应的实际函数。
7.根据权利要求6所述的装置,其特征在于,所述事件确定单元包括: 第一事件确定子单元,用于确定所述文档对象模型被触发的类型,并确定与该类型的触发操作对应的调用事件。
8.根据权利要求6所述的装置,其特征在于,所述代理函数确定单元包括: 浏览器确定单元,用于确定当前浏览器的型号; 代理函数查询单元,用于在当前型号的浏览器下,查询与所述调用事件对应的代理函数。
9.根据权利要求6所述的装置,其特征在于,所述代理函数执行单元包括: 第一代理函数执行子单元,用于在所述与所述调用事件对应的实际函数的个数为多个时,按照与所述调用事件对应的多个实际函数存储至所述缓存区的先后顺序,依次执行所述实际函数。
10.根据权利要求6-9任意一项所述的装置,其特征在于,还包括: 事件添加单元,用于为用户指定的文档对象模型添加指定的调用事件,该过程包括:将与所述指定的调用事件对应的实际函数进行代理包装,确定当前型号的浏览器下的代理函数及包装后的实际函数;将包装后的实际函数存储至缓存区;将确定的代理函数与所述指定的调用事件进行关联。
【文档编号】G06F9/48GK104360907SQ201410738745
【公开日】2015年2月18日 申请日期:2014年12月5日 优先权日:2014年12月5日
【发明者】王奔, 冯东 申请人:国家电网公司, 北京中电普华信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1