绑定函数执行方法、装置、设备和存储介质制造方法及图纸

技术编号:27005991 阅读:24 留言:0更新日期:2021-01-08 17:08
本申请涉及一种绑定函数执行方法、装置、设备和存储介质,其中,该绑定函数执行方法包括:通过检测到绑定元素的之外的区域被触发或者绑定元素失去焦点,其中,绑定元素为可聚焦元素;将绑定元素对应的绑定函数推入异步队列中;在绑定函数被激活时,执行绑定函数。通过本申请,解决了相关技术中在点击绑定元素之外区域或绑定元素失去焦点情况下的绑定函数,<iframe>无法触发其执行的问题。

【技术实现步骤摘要】
绑定函数执行方法、装置、设备和存储介质
本申请涉及计算机领域,特别是涉及绑定函数执行方法、装置、计算机设备和计算机可读存储介质。
技术介绍
目前现有的点击元素之外的技术,例如,ClickOutside、clickAway等技术都是通过如下方案实现,如图1所示,首先,将需要绑定的元素与绑定函数隔离存储;其次,在Document文档对象上注册click或mouse、touch等事件处理函数;再后,当用户点击或触碰屏幕中的页面元素时触发事件绑定函数,浏览器会将Event事件对象作为参数传递给事件处理函数,在函数中判断参数的target属性(目标元素节点对象)是否包含在绑定元素中,如果是执行绑定函数,否则什么都不操作。在浏览上下文对象(BrowsingContext)中会包含一个窗口代理对象(WindowProxy),它包裹了一个当前的窗口对象(Window)。并且记录一个当前活跃的文档对象(ActiveDocument),这个文档就是上下文对应的窗口对象所关联的文档对象(AssociatedDocument),即当前打开的文档对象。在结构上,浏览上下文是可以嵌套的:文档内的某些元素如<iframe>可以实例化一个新的浏览上下文,这些元素被称为浏览器上下文容器(BrowsingContextContainer),而实例化的浏览上下文则被称为是嵌套的浏览上下文(NestedBrowsingContext);而对于某个嵌套的浏览上下文,其容器所在的文档对应的浏览器上下文,则被称为父浏览上下文(ParentBrowsingContext),且一定是唯一的。由于<iframe>实际上是一个独立的浏览上下文,所以它有和父文档完全隔离,如图2所示。目前现有的技术都是通过在Document文档对象上注册click或mouse、touch等事件处理函数,当执行事件处理函数时,判断Event对象中的target属性是否包含在绑定元素之中。但是当用户点击的<Iframe>元素和其包裹的子元素时,由于其是独立的浏览上下文和父文档完全隔离,所以这些在Document上注册的事件都不会被触发,这导致绑定的函数不会被执行。所以当页面中嵌入了<iframe>元素,点击<iframe>会导致这些注册的事件执行函数失效。目前针对相关技术中,在点击绑定元素之外区域或绑定元素失去焦点情况下的绑定函数,<iframe>无法触发其执行,尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种绑定函数执行方法、装置、计算机设备和计算机可读存储介质,以至少解决相关技术中在点击绑定元素之外区域或绑定元素失去焦点情况下的绑定函数,<iframe>无法触发其执行的问题。第一方面,本申请实施例提供了一种绑定函数执行方法,包括:检测到绑定元素的之外的区域被触发或者绑定元素失去焦点,其中,绑定元素为可聚焦元素;将绑定元素对应的绑定函数推入异步队列中;在绑定函数被激活时,执行绑定函数。在其中一些实施例中,将绑定元素对应的绑定函数推入异步队列中包括:通过第一事件对象的目标属性获取存储对象;使用存储对象的定时器timer属性获取异步清理函数标识;将绑定元素对应的绑定函数和异步清理函数标识推入异步队列中。在其中一些实施例中,在将绑定元素对应的绑定函数推入异步队列中之后,还包括:检测到绑定函数未被激活且绑定元素被触发或绑定元素激活焦点状态;通过第二事件对象的目标属性获取存储对象;使用存储对象的定时器timer属性调用异步清理函数标识标识对应的异步清理函数销毁异步队列中未执行的绑定函数。在其中一些实施例中,在绑定函数被激活时,执行绑定函数包括:检测到浏览器的事件循环系统将绑定函数激活并推入栈内存中;执行绑定函数。在其中一些实施例中,在检测到绑定元素的之外的区域被触发或者绑定元素失去焦点之前,还包括:绑定绑定元素和第一事件对象和第二时间对象。在其中一些实施例中,在检测到绑定元素的之外的区域被触发或者绑定元素失去焦点之前,还包括:将绑定元素设置为可聚焦元素。第二方面,本申请实施例提供了一种绑定函数执行装置,包括:检测模块,用于检测到绑定元素的之外的区域被触发或者绑定元素失去焦点,其中,绑定元素为可聚焦元素;推入模块,用于将绑定元素对应的绑定函数推入异步队列中;执行模块,用于在绑定函数被激活时,执行绑定函数。在其中一些实施例中,推入模块,还用于通过第一事件对象的目标属性获取存储对象;使用存储对象的定时器timer属性获取异步清理函数标识;以及将绑定元素对应的绑定函数和异步清理函数标识推入异步队列中。第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的绑定函数执行方法。第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的绑定函数执行方法。相比于相关技术,本申请实施例提供的绑定函数执行方法,通过检测到绑定元素的之外的区域被触发或者绑定元素失去焦点,其中,绑定元素为可聚焦元素;将绑定元素对应的绑定函数推入异步队列中;在绑定函数被激活时,执行绑定函数。解决了相关技术中在点击绑定元素之外区域或绑定元素失去焦点情况下的绑定函数,<iframe>无法触发其执行的问题,实现了iframe触发点击元素之外的功能。本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据相关技术的绑定函数执行方法示意图;图2是根据相关技术的一种浏览上下文示意图;图3是根据本申请实施例的一种绑定函数执行方法的流程图;图4是根据本申请优选实施例的绑定函数执行方法的总体处理流程图;图5是根据本申请实施例的绑定函数执行方法的优选流程图;图6是根据本申请实施例的绑定函数执行装置的结构框图;图7是根据本申请实施例的一种电子设备示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努本文档来自技高网
...

【技术保护点】
1.一种绑定函数执行方法,其特征在于,包括:/n检测到所述绑定元素的之外的区域被触发或者所述绑定元素失去焦点,其中,所述绑定元素为可聚焦元素;/n将所述绑定元素对应的绑定函数推入异步队列中;/n在所述绑定函数被激活时,执行所述绑定函数。/n

【技术特征摘要】
1.一种绑定函数执行方法,其特征在于,包括:
检测到所述绑定元素的之外的区域被触发或者所述绑定元素失去焦点,其中,所述绑定元素为可聚焦元素;
将所述绑定元素对应的绑定函数推入异步队列中;
在所述绑定函数被激活时,执行所述绑定函数。


2.根据权利要求1所述的方法,其特征在于,所述将所述绑定元素对应的绑定函数推入异步队列中包括:
通过第一事件对象的目标属性获取存储对象;
使用存储对象的定时器timer属性获取异步清理函数标识;
将所述绑定元素对应的绑定函数和所述异步清理函数标识推入异步队列中。


3.根据权利要求2所述的方法,其特征在于,在将所述绑定元素对应的绑定函数推入异步队列中之后,还包括:
检测到所述绑定函数未被激活且所述绑定元素被触发或所述绑定元素激活焦点状态;
通过第二事件对象的目标属性获取存储对象;
使用存储对象的定时器timer属性调用所述异步清理函数标识标识对应的异步清理函数销毁所述异步队列中未执行的绑定函数。


4.根据权利要求1所述的方法,其特征在于,所述在所述绑定函数被激活时,执行所述绑定函数包括:
检测到浏览器的事件循环系统将所述绑定函数激活并推入栈内存中;
执行所述绑定函数。


5.根据权利要求1至4中任一项所述的方法,其特征在于,在检测到所述绑定元素的...

【专利技术属性】
技术研发人员:陶旭生
申请(专利权)人:上海妙一生物科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1